sql >> Databáze >  >> RDS >> Sqlserver

Pomocí OBJECTPROPERTY() zjistěte, zda je objekt zobrazením na serveru SQL Server

Můžete použít OBJECTPROPERTY() funkce na serveru SQL Server, abyste zjistili, zda je objekt pohledem.

Tato funkce přijímá dva parametry:ID objektu a vlastnost, pro kterou ji hledáte.

Proto můžete předat ID objektu jako první argument a IsView jako druhý a funkce vrátí buď 1 nebo 0 podle toho, jestli je to pohled nebo ne.

Vrácená hodnota 1 znamená, že je zobrazení a hodnotu 0 znamená, že není.

Příklad 1 – Základní použití

Zde je rychlý příklad k demonstraci.

USE Music;
SELECT OBJECTPROPERTY(1525580473, 'IsView') AS [IsView];

Výsledek:

+----------+
| IsView   |
|----------|
| 1        |
+----------+

V tomto případě Hudba databáze má objekt s poskytnutým ID a je to pohled.

Příklad 2 – Získání ID objektu

Pokud znáte název objektu, ale neznáte jeho ID, můžete použít OBJECT_ID() funkce pro načtení ID na základě jeho názvu.

Příklad:

SELECT OBJECTPROPERTY(OBJECT_ID('RockAlbums'), 'IsView') AS [IsView];

Výsledek:

+----------+
| IsView   |
|----------|
| 1        |
+----------+

V tomto případě jsem zkontroloval stejný objekt z předchozího příkladu.

Zde je to opět s výstupem ID samostatně.

SELECT 
  OBJECT_ID('RockAlbums') AS [Object ID],
  OBJECTPROPERTY(OBJECT_ID('RockAlbums'), 'IsView') AS [IsView];

Výsledek:

+-------------+----------+
| Object ID   | IsView   |
|-------------+----------|
| 1525580473  | 1        |
+-------------+----------+

Příklad 3 – Když objekt NENÍ pohled

Co se stane, když objekt není pohledem.

SELECT OBJECTPROPERTY(885578193, 'IsView') AS [IsView];

Výsledek:

+----------+
| IsView   |
|----------|
| 0        |
+----------+

V tomto případě databáze dělá ve skutečnosti mají objekt s tímto ID, ale objekt je ve skutečnosti tabulka, takže dostanu negativní výsledek.

Zde je to opět pomocí OBJECT_ID() .

SELECT 
  OBJECT_ID('Artists') AS [Object ID],
  OBJECTPROPERTY(OBJECT_ID('Artists'), 'IsView') AS [IsView];

Výsledek:

+-------------+----------+
| Object ID   | IsView   |
|-------------+----------|
| 885578193   | 0        |
+-------------+----------+

Příklad 4 – Objekt neexistuje

SQL Server předpokládá, že ID objektu je v aktuálním kontextu databáze. Pokud předáte ID objektu z jiné databáze, dostanete buď výsledek NULL, nebo nesprávné výsledky.

SELECT 
  OBJECTPROPERTY(OBJECT_ID('NonExistentObject'), 'IsView') AS [NonExistentObject],
  OBJECTPROPERTY(11111111, 'IsView') AS [11111111];

Výsledek:

+---------------------+------------+
| NonExistentObject   | 11111111   |
|---------------------+------------|
| NULL                | NULL       |
+---------------------+------------+

V tomto případě databáze neobsahuje žádné objekty tohoto jména nebo ID, takže dostanu výsledek NULL.

Při chybě nebo v případě, že nemáte oprávnění k zobrazení objektu, získáte také hodnotu NULL.


  1. SQL – Převod datového typu varchar na datový typ datetime vedl k hodnotě mimo rozsah

  2. Proveďte analýzu produktu pomocí SQL Server Full-Text Search. Část 1

  3. Jak rozdělit hodnotu oddělenou čárkami do sloupců

  4. mysql - kolik sloupců je příliš mnoho?