Sie können die OBJECTPROPERTY()
verwenden Funktion in SQL Server, um herauszufinden, ob ein Objekt eine Ansicht ist oder nicht.
Diese Funktion akzeptiert zwei Parameter:die Objekt-ID und die Eigenschaft, nach der Sie suchen.
Daher können Sie als erstes Argument die Objekt-ID und IsView
übergeben als zweites, und die Funktion gibt entweder einen 1
zurück oder eine 0
je nachdem, ob es sich um eine Ansicht handelt oder nicht.
Ein Rückgabewert von 1
bedeutet, dass es ist eine Ansicht und einen Wert von 0
bedeutet, dass dies nicht der Fall ist.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein kurzes Beispiel zur Veranschaulichung.
USE Music; SELECT OBJECTPROPERTY(1525580473, 'IsView') AS [IsView];
Ergebnis:
+----------+ | IsView | |----------| | 1 | +----------+
In diesem Fall die Musik Datenbank hat ein Objekt mit der bereitgestellten ID, und es ist eine Ansicht.
Beispiel 2 – Abrufen der Objekt-ID
Wenn Sie den Namen des Objekts kennen, aber nicht seine ID, können Sie die OBJECT_ID()
verwenden Funktion zum Abrufen der ID basierend auf ihrem Namen.
Beispiel:
SELECT OBJECTPROPERTY(OBJECT_ID('RockAlbums'), 'IsView') AS [IsView];
Ergebnis:
+----------+ | IsView | |----------| | 1 | +----------+
In diesem Fall habe ich dasselbe Objekt aus dem vorherigen Beispiel überprüft.
Hier wird nochmal mit der ID getrennt ausgegeben.
SELECT OBJECT_ID('RockAlbums') AS [Object ID], OBJECTPROPERTY(OBJECT_ID('RockAlbums'), 'IsView') AS [IsView];
Ergebnis:
+-------------+----------+ | Object ID | IsView | |-------------+----------| | 1525580473 | 1 | +-------------+----------+
Beispiel 3 – Wenn das Objekt KEINE Ansicht ist
Folgendes passiert, wenn das Objekt keine Ansicht ist.
SELECT OBJECTPROPERTY(885578193, 'IsView') AS [IsView];
Ergebnis:
+----------+ | IsView | |----------| | 0 | +----------+
In diesem Fall macht es die Datenbank habe tatsächlich ein Objekt mit dieser ID, aber das Objekt ist eigentlich eine Tabelle, also erhalte ich ein negatives Ergebnis.
Hier wird wieder OBJECT_ID()
verwendet .
SELECT OBJECT_ID('Artists') AS [Object ID], OBJECTPROPERTY(OBJECT_ID('Artists'), 'IsView') AS [IsView];
Ergebnis:
+-------------+----------+ | Object ID | IsView | |-------------+----------| | 885578193 | 0 | +-------------+----------+
Beispiel 4 – Objekt existiert nicht
SQL Server geht davon aus, dass sich die Objekt-ID im aktuellen Datenbankkontext befindet. Wenn Sie eine Objekt-ID aus einer anderen Datenbank übergeben, erhalten Sie entweder ein NULL-Ergebnis oder falsche Ergebnisse.
SELECT OBJECTPROPERTY(OBJECT_ID('NonExistentObject'), 'IsView') AS [NonExistentObject], OBJECTPROPERTY(11111111, 'IsView') AS [11111111];
Ergebnis:
+---------------------+------------+ | NonExistentObject | 11111111 | |---------------------+------------| | NULL | NULL | +---------------------+------------+
In diesem Fall enthält die Datenbank keine Objekte mit diesem Namen oder dieser ID, und daher erhalte ich ein NULL-Ergebnis.
Sie erhalten auch NULL bei einem Fehler oder wenn Sie keine Berechtigung zum Anzeigen des Objekts haben.