Ich habe SQL-Code, der ausgeführt werden muss, wenn eine bestimmte Ansicht in einer Datenbank vorhanden ist. Wie würde ich prüfen, ob die Ansicht vorhanden ist?
BEARBEITEN: Das verwendete DBMS ist Microsoft SQL Server
Ich habe SQL-Code, der ausgeführt werden muss, wenn eine bestimmte Ansicht in einer Datenbank vorhanden ist. Wie würde ich prüfen, ob die Ansicht vorhanden ist?
BEARBEITEN: Das verwendete DBMS ist Microsoft SQL Server
FÜR SQL Server
IF EXISTS(select * FROM sys.views where name = '')
sys.schema
.Es gibt bereits viele Möglichkeiten, die oben angegeben wurden, aber eine meiner Favoriten fehlt.
WO
nView
ist der Name der AnsichtUPDATE 2017-03-25: wie @hanesjw vorgeschlagen hat, eine Speicherprozedur zu löschen,
P
anstattV
als zweites Argument vonOBJECT_ID
quelle
Dies ist der tragbarste und am wenigsten aufdringliche Weg:
Bearbeiten: Dies funktioniert unter SQL Server und erfordert nicht, dass Sie beitreten
sys.schemas
, um das Schema der Ansicht abzurufen. Dies ist weniger wichtig, wenn alles vorhanden istdbo
, aber wenn Sie Schemata gut nutzen, sollten Sie dies berücksichtigen.Jedes RDBMS hat seine eigene kleine Möglichkeit, solche Metadaten zu überprüfen, ist aber
information_schema
tatsächlich ANSI, und ich denke, Oracle und anscheinend SQLite sind die einzigen, die es in irgendeiner Weise nicht unterstützen.quelle
quelle
View
Verwenden Sie dies für Personen, die die Existenz überprüfen, um sie fallen zu lassenVon können
SQL Server 2016 CTP3
Sie neue DIE- Anweisungen anstelle von großenIF
Wrappern verwendenSyntax
Abfrage:
Mehr Infos hier
quelle
Wenn es Oracle ist, würden Sie die Tabelle "all_views" verwenden.
Es hängt wirklich von Ihren DBMS ab.
quelle
Wenn Sie die Gültigkeit und Konsistenz aller vorhandenen Ansichten überprüfen möchten, können Sie die folgende Abfrage verwenden
quelle
IN SQL Server,
quelle
Um Kevins Antwort zu erweitern.
quelle
Sie können die Verfügbarkeit der Ansicht auf verschiedene Arten überprüfen
FÜR SQL Server
benutze sys.objects
benutze sysobjects
Verwenden Sie sys.views
Verwenden Sie INFORMATION_SCHEMA.VIEWS
Verwenden Sie OBJECT_ID
Verwenden Sie sys.sql_modules
quelle