OBJECT_ID (Transact-SQL)OBJECT_ID (Transact-SQL)

Gilt für: JaSQL Server JaAzure SQL-Datenbank JaAzure Synapse Analytics (SQL DW) JaParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Gibt die Datenbankobjekt-ID eines Objekts mit Schemabereich zurück.Returns the database object identification number of a schema-scoped object.

Wichtig

Objekte, die keine Schemas als Bereiche besitzen, z. B. DDL-Trigger, können nicht mit OBJECT_ID abgefragt werden.Objects that are not schema-scoped, such as DDL triggers, cannot be queried by using OBJECT_ID. Rufen Sie für Objekte, die nicht in der sys.objects-Katalogsicht gefunden werden, die Objekt-IDs ab, indem Sie die entsprechende Katalogsicht abfragen.For objects that are not found in the sys.objects catalog view, obtain the object identification numbers by querying the appropriate catalog view. Verwenden Sie z.B. SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``', um die Objekt-ID eines DDL-Triggers zurückzugeben.For example, to return the object identification number of a DDL trigger, use SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.

Themenlinksymbol Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

ArgumenteArguments

' object_name '' object_name '
Das zu verwendende Objekt.Is the object to be used. object_name entspricht entweder dem Typ varchar oder nvarchar.object_name is either varchar or nvarchar. Wenn object_name dem Typ varchar entspricht, wird eine implizite Konvertierung in nvarchar vorgenommen.If object_name is varchar, it is implicitly converted to nvarchar. Die Angabe des Datenbank- und des Schemanamens ist optional.Specifying the database and schema names is optional.

' object_type '' object_type '
Der Objekttyp mit Schemabereich.Is the schema-scoped object type. object_type entspricht entweder dem Typ varchar oder nvarchar.object_type is either varchar or nvarchar. Wenn object_type dem Typ varchar entspricht, wird eine implizite Konvertierung in nvarchar vorgenommen.If object_type is varchar, it is implicitly converted to nvarchar. Eine Liste von Objekttypen finden Sie in der Spalte Typ unter sys.objects (Transact-SQL).For a list of object types, see the type column in sys.objects (Transact-SQL).

RückgabetypenReturn Types

intint

AusnahmenExceptions

Für einen räumlichen Index gibt OBJECT_ID den Wert NULL zurück.For a spatial index, OBJECT_ID returns NULL.

Gibt bei einem Fehler NULL zurück.Returns NULL on error.

Ein Benutzer kann nur die Metadaten sicherungsfähiger Elemente anzeigen, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. Dies bedeutet, dass integrierte Funktionen (z. B. OBJECT_ID), die Metadaten ausgeben, möglicherweise NULL zurückgeben, wenn dem Benutzer für das Objekt keine Berechtigung erteilt wurde.This means that metadata-emitting, built-in functions such as OBJECT_ID may return NULL if the user does not have any permission on the object. Weitere Informationen finden Sie unter Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

BemerkungenRemarks

Wenn der Parameter für eine Systemfunktion optional ist, wird von der aktuellen Datenbank, dem aktuellen Hostcomputer, dem aktuellen Serverbenutzer oder dem aktuellen Datenbankbenutzer ausgegangen.When the parameter to a system function is optional, the current database, host computer, server user, or database user is assumed. Auf integrierte Funktionen müssen immer runde Klammern folgen.Built-in functions must always be followed by parentheses.

Wenn der Name einer temporären Tabelle angegeben wird, muss der Datenbankname vor diesem angegeben werden, es sei denn, die aktuelle Datenbank ist tempdb.When a temporary table name is specified, the database name must come before the temporary table name, unless the current database is tempdb. Beispiel: SELECT OBJECT_ID('tempdb..#mytemptable').For example: SELECT OBJECT_ID('tempdb..#mytemptable').

Systemfunktionen können in der SELECT-Liste, in einer WHERE-Klausel und überall dort verwendet werden, wo ein Ausdruck zulässig ist.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. Weitere Informationen finden Sie unter Ausdrücke (Transact-SQL) und WHERE (Transact-SQL).For more information, see Expressions (Transact-SQL) and WHERE (Transact-SQL).

BeispieleExamples

A.A. Zurückgeben der Objekt-ID für ein angegebenes ObjektReturning the object ID for a specified object

Das folgende Beispiel gibt die Objekt-ID für die Production.WorkOrder-Tabelle in der AdventureWorks2012AdventureWorks2012-Datenbank zurück.The following example returns the object ID for the Production.WorkOrder table in the AdventureWorks2012AdventureWorks2012 database.

USE master;  
GO  
SELECT OBJECT_ID(N'AdventureWorks2012.Production.WorkOrder') AS 'Object ID';  
GO  

B.B. Überprüfen, ob ein Objekt vorhanden istVerifying that an object exists

Das folgende Beispiel überprüft das Vorhandensein einer angegebenen Tabelle, indem überprüft wird, ob die Tabelle eine Objekt-ID besitzt.The following example checks for the existence of a specified table by verifying that the table has an object ID. Wenn die Tabelle vorhanden ist, wird sie gelöscht.If the table exists, it is deleted. Ist die Tabelle nicht vorhanden, wird die DROP TABLE-Anweisung nicht ausgeführt.If the table does not exist, the DROP TABLE statement is not executed.

USE AdventureWorks2012;  
GO  
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL  
DROP TABLE dbo.AWBuildVersion;  
GO  

C.C. Angeben des Werts eines Systemfunktionsparameters mithilfe von OBJECT_IDUsing OBJECT_ID to specify the value of a system function parameter

Im folgenden Beispiel werden Informationen zu allen Indizes und Partitionen der Person.Address-Tabelle in der AdventureWorks2012AdventureWorks2012-Datenbank zurückgegeben. Dazu wird die sys.dm_db_index_operational_stats-Funktion verwendet.The following example returns information for all indexes and partitions of the Person.Address table in the AdventureWorks2012AdventureWorks2012 database by using the sys.dm_db_index_operational_stats function.

Wichtig

Wenn Sie die Transact-SQLTransact-SQL-Funktionen DB_ID und OBJECT_ID zum Zurückgeben eines Parameterwerts verwenden, sollten Sie immer sicherstellen, dass eine gültige ID zurückgegeben wird.When you are using the Transact-SQLTransact-SQL functions DB_ID and OBJECT_ID to return a parameter value, always make sure that a valid ID is returned. Wenn der Datenbank- oder Objektname nicht gefunden werden kann, wenn sie z. B. nicht vorhanden oder fehlerhaft geschrieben sind, geben beide Funktionen NULL zurück.If the database or object name cannot be found, such as when they do not exist or are spelled incorrectly, both functions will return NULL. Die sys.dm_db_index_operational_stats-Funktion interpretiert NULL als Platzhalterwert, der alle Datenbanken oder alle Objekte angibt.The sys.dm_db_index_operational_stats function interprets NULL as a wildcard value that specifies all databases or all objects. Da dies ein versehentlicher Vorgang sein kann, veranschaulichen die Beispiele in diesem Abschnitt, wie Sie auf sichere Weise Datenbank- und Objekt-IDs bestimmen.Because this can be an unintentional operation, the examples in this section demonstrate the safe way to determine database and object IDs.

DECLARE @db_id int;  
DECLARE @object_id int;  
SET @db_id = DB_ID(N'AdventureWorks2012');  
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');  
IF @db_id IS NULL   
  BEGIN;  
    PRINT N'Invalid database';  
  END;  
ELSE IF @object_id IS NULL  
  BEGIN;  
    PRINT N'Invalid object';  
  END;  
ELSE  
  BEGIN;  
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);  
  END;  
GO  

Beispiele: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL DW) und Parallel Data WarehouseParallel Data Warehouse.Examples: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL DW) and Parallel Data WarehouseParallel Data Warehouse

D: Zurückgeben der Objekt-ID für ein angegebenes ObjektD: Returning the object ID for a specified object

Das folgende Beispiel gibt die Objekt-ID für die FactFinance-Tabelle in der AdventureWorksPDW2012AdventureWorksPDW2012-Datenbank zurück.The following example returns the object ID for the FactFinance table in the AdventureWorksPDW2012AdventureWorksPDW2012 database.

SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';  

Weitere InformationenSee Also

Metadata Functions (Transact-SQL) (Metadatenfunktionen (Transact-SQL)) Metadata Functions (Transact-SQL)
sys.objects (Transact-SQL) sys.objects (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL) sys.dm_db_index_operational_stats (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL) OBJECT_DEFINITION (Transact-SQL)
OBJECT_NAME (Transact-SQL)OBJECT_NAME (Transact-SQL)