Udostępnij za pośrednictwem


OBJECT_ID (języka Transact-SQL)

Zwraca numer identyfikacyjny obiektu bazy danych obiektu o zakresie schematu.

Important noteImportant Note:

Obiekty, które nie są o schemacie zakresie, takich jak DDL wyzwalacze, nie można zbadać za pomocą OBJECT_ID.W przypadku obiektów, które nie zostały znalezione w sys.Objects katalogu widoku, uzyskać numerów identyfikacyjnych obiektu za pomocą kwerend wysyłanych do widoku odpowiedniego wykazu.Na przykład aby zwrócić numer identyfikacyjny obiektu DDL wyzwalacza, należy użyć SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'.

Topic link iconKonwencje składni języka Transact-SQL

OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] 
    object_name' [ ,'object_type' ] )

Argumenty

  • 'object_name'
    Is the object to be used.object_name is either varchar or nvarchar.Jeśli object_name jest varchar, domyślnie jest on skonwertowany na nvarchar. Określanie nazwy bazy danych i schematu jest opcjonalne.

  • 'object_type'
    Is the schema-scoped object type.object_type is either varchar or nvarchar.Jeśli object_type jest varchar, domyślnie jest on skonwertowany na nvarchar. Aby wyświetlić listę typów obiektów, zobacz temat Typ kolumnasys.objects (Transact-SQL).

Zwracane typy

int

Exceptions

Przestrzennej indeksu OBJECT_ID zwraca wartość NULL.

Zwraca wartość NULL na błąd.

Użytkownik może tylko przeglądać metadane securables należące do tego użytkownika lub w którym użytkownik ma udzielonego uprawnienia.Oznacza to, czy wysyłających metadane wbudowane działa jak OBJECT_ID może zwracać wartość NULL, jeśli użytkownik nie ma żadnych uprawnień do obiektu.Aby uzyskać więcej informacji zobacz Konfiguracja widoczność metadane i Troubleshooting Metadata Visibility.

Remarks

Gdy parametr do funkcja systemowej jest opcjonalny, przyjmowana jest bieżąca baza danych, komputer-host, użytkowników serwera lub użytkownik bazy danych.funkcje wbudowane musi zawsze występować w nawiasach.

Jeśli zostanie określona nazwa tabeli tymczasowej, nazwa bazy danych musi znajdować się przed nią, o ile bieżącą bazą danych nie jest baza danych tempdb.Na przykład SELECT OBJECT_ID('tempdb..#mytemptable').

funkcje systemowe mogą być używane w liście select z klauzula WHERE, i dowolnym wyrażeniu jest dozwolone.Aby uzyskać więcej informacji zobacz Expressions (Transact-SQL) i WHERE (języka Transact-SQL).

Przykłady

A.Zwraca identyfikator obiektu dla określonego obiektu

W poniższym przykładzie zwraca identyfikator obiektu Production.WorkOrder Tabela w AdventureWorks Baza danych.

B.Weryfikowanie, czy obiekt istnieje

W poniższym przykładzie sprawdza istnienie określonej tabeli, zweryfikuj, że tabela ma identyfikator obiektu.Jeśli w tabela istnieje, jest usuwany.Jeśli tabela nie istnieje, DROP TABLE Instrukcja nie jest wykonywana.

C.Aby określić wartość parametru funkcja systemu przy użyciu OBJECT_ID

W poniższym przykładzie zwraca informacje dotyczące wszystkich indeksów i partycje o Person.Address Tabela w AdventureWorks bazy danych przy użyciu sys.dm_db_index_operational_stats funkcja.

Important noteImportant Note:

W przypadku korzystania z Transact-SQL funkcje zwracają wartość parametru DB_ID i OBJECT_ID zawsze upewnij się, że zwracana jest prawidłowy identyfikator. Jeśli nie można odnaleźć nazwy bazy danych lub obiekt, takie jak ich nie istnieją lub są wpisany błędnie, funkcjami zwróci wartość NULL.The sys.dm_db_index_operational_stats funkcja interprets NULL as a wildcard value that specifies all databases or all objects.Może być operacją niezamierzone, przykłady w tej części pokazują bezpieczny sposób, aby określić bazę danych i identyfikatory obiektów.