Megosztás a következőn keresztül:


OBJECT_ID (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy séma hatókörű objektum adatbázisobjektum-azonosító számát adja vissza.

A nem séma hatókörű objektumok, például a Data Definition Language (DDL) eseményindítói nem kérdezhetők le a használatával OBJECT_ID. A sys.objects katalógusnézetben nem található objektumok esetében a megfelelő katalógusnézet lekérdezésével szerezze be az objektumazonosítási számokat. Ha például egy DDL-eseményindító objektumazonosítási számát szeretné visszaadni, használja a következőt SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog': .

Transact-SQL szintaxis konvenciók

Szemantika

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

Érvek

N'object_name'

A használni kívánt objektum. object_namevarchar vagy nvarchar. A object_namevarchar értéke implicit módon nvarcharvá alakul. Az adatbázis- és sémanevek megadása nem kötelező.

N'object_type'

A séma hatókörű objektumtípusa. object_typevarchar vagy nvarchar. A object_typevarchar értéke implicit módon nvarchar lesz. Az objektumtípusok listáját a sys.objects (Transact-SQL)típusoszlopában találja.

Visszatérési típusok

int

Kivételek

Térbeli index OBJECT_ID esetén a visszaadott NULLérték.

Hibaértéket ad NULL vissza.

A felhasználó csak a felhasználó által birtokolt biztonságos adatok metaadatait tekintheti meg, vagy amelyekhez a felhasználó engedélyt kapott. Ez azt jelenti, hogy a metaadatkibocsátó, beépített függvények, például OBJECT_ID akkor térhetnek vissza NULL , ha a felhasználónak nincs engedélye az objektumra. További információ: Metaadatok láthatóságának konfigurációja.

Megjegyzések

Ha a rendszerfüggvény paramétere nem kötelező, a rendszer az aktuális adatbázist, gazdaszámítógépet, kiszolgálófelhasználót vagy adatbázis-felhasználót feltételezi. A beépített függvényeket mindig zárójelekkel kell követnie.

Ha ideiglenes táblanevet ad meg, az adatbázis nevének az ideiglenes tábla neve előtt kell lennie, kivéve, ha az aktuális adatbázis.tempdb Például:

SELECT OBJECT_ID('tempdb..#mytemptable');

A rendszerfüggvények használhatók a kijelölési listában, a WHERE záradékban és bárhol, ahol egy kifejezés engedélyezve van. További információ: Kifejezések (Transact-SQL) és WHERE (Transact-SQL).

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

Egy. Adott objektum objektumazonosítójának visszaadása

Az alábbi példa az adatbázis táblájának Production.WorkOrder objektumazonosítóját AdventureWorks2025 adja vissza.

USE master;
GO

SELECT OBJECT_ID(N'AdventureWorks2022.Production.WorkOrder') AS 'Object ID';
GO

B. Objektum meglétének ellenőrzése

Az alábbi példa egy adott tábla meglétét ellenőrzi annak ellenőrzésével, hogy a tábla rendelkezik-e objektumazonosítóval. Ha a tábla létezik, a rendszer törli. Ha a tábla nem létezik, az DROP TABLE utasítás nem lesz végrehajtva.

USE AdventureWorks2022;
GO

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

C. Rendszerfüggvény-paraméter értékének megadása a OBJECT_ID használatával

Az alábbi példa az adatbázis táblájának összes indexére és partíciójára Person.Address vonatkozó információkat adja vissza a AdventureWorks2025sys.dm_db_index_operational_stats függvény használatával.

Megjegyzés:

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Ha a Transact-SQL függvényeket DB_ID használja, és OBJECT_ID paraméterértéket ad vissza, mindig győződjön meg arról, hogy érvényes azonosítót ad vissza. Ha az adatbázis vagy az objektum neve nem található, például ha nem léteznek, vagy helytelenül vannak beírva, mindkét függvény visszaadja NULL. A sys.dm_db_index_operational_stats függvény helyettesítő karakterként értelmezi NULL az összes adatbázist vagy objektumot. Mivel ez a művelet nem szándékos lehet, az ebben a szakaszban szereplő példa bemutatja az adatbázis- és objektumazonosítók meghatározásának biztonságos módját.

DECLARE @db_id INT;
DECLARE @object_id INT;

SET @db_id = DB_ID(N'AdventureWorks2022');
SET @object_id = OBJECT_ID(N'AdventureWorks2022.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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Adott objektum objektumazonosítójának visszaadása

Az alábbi példa az FactFinance adatbázis táblájának objektumazonosítóját adja vissza.

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