OBJECT_ID (Transact-sql)
Bir şema kapsamlı nesne veritabanı nesne tanımlama numarası verir.
Önemli |
---|
OBJECT_ID kullanarak şema kapsamlı ddl Tetikleyicileri gibi olmayan nesneler sorgulanamıyor. İçinde bulunan nesneler için sys.objects Katalog görünümü, nesne tanımlama numaraları uygun katalog görünümünü sorgulayarak edinme. Örneğin, nesne tanımlama numarası ddl tetikleyici için kullanın SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'. |
Transact-SQL Sözdizim Kuralları
Sözdizimi
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]
object_name' [ ,'object_type' ] )
Bağımsız değişkenler
'object_name'
Kullanılacak nesnesidir. object_nameis either varchar or nvarchar. Eğer object_nameolan varchar, bu örtülü olarak dönüştürülür nvarchar. Veritabanı ve şema adları belirtmek isteğe bağlıdır.'object_type'
Şema kapsamlı nesne türüdür. object_typeis either varchar or nvarchar. Eğer object_typeolan varchar, bu örtülü olarak dönüştürülür nvarchar. Nesne türlerinin listesi için bkz: türü sütununda sys.Objects (Transact-sql).
Dönüş Türleri
int
Kural dışı durumlar
Kayma dizin için OBJECT_ID null döndürüyor.
null döner.
Bir kullanıcı yalnızca kullanıcının sahip olduğu veya kullanıcı izni verilmiş securables meta verileri görüntüleyebilirsiniz. Bu, kullanıcı nesnesi üzerinde izni yoksa OBJECT_ID null döndürebilir gibi meta veri verilirken, yerleşik fonksiyonları olduğunu anlamına gelir. Daha fazla bilgi için, bkz. Meta veri görünürlük yapılandırma.
Açıklamalar
Sistem işlevi için parametre isteğe bağlı olduğunda, geçerli veritabanının, ana bilgisayar, sunucu kullanıcı veya veritabanı kullanıcı kabul edilir. Yerleşik işlevleri parantez tarafından her zaman izlenmesi gerekir.
Geçici tablo adı belirtildiğinde, sürece geçerli veritabanında veritabanı adı geçici tablo adından önce gelmelidir tempdb. Örneğin: SELECT OBJECT_ID('tempdb..#mytemptable').
Sistem işlevleri seçme listesinde where yan tümcesi kullanılabilir ve herhangi bir ifade izin verilir. Daha fazla bilgi için Ifadeler (Transact-sql)ve NEREDE (Transact-sql).
Örnekler
A.Belirtilen nesne nesnesinin Kımlığı döndürme
Aşağıdaki örnek, nesne kimliği verir Production.WorkOrderiçinde masa AdventureWorksveritabanı.
USE master;
GO
SELECT OBJECT_ID(N'AdventureWorks2012.Production.WorkOrder') AS 'Object ID';
GO
B.Nesne varolduğunu doğrulama
Aşağıdaki örnek, tablo nesne kimliği olduğunu doğrulayarak belirtilen tablo varlığını denetler. Tablo varsa silinir. Tablo yoksa, DROP TABLEdeyimi yürütüldü.
USE AdventureWorks2012;
GO
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL
DROP TABLE dbo.AWBuildVersion;
GO
C.C.sistem işlevi parametre değeri belirtmek için OBJECT_ID kullanma
Aşağıdaki örnek, tüm dizinler ve bölümler için bilgi verir Person.Addressiçinde masa AdventureWorksveritabanı kullanarak verirsys.dm_db_index_operational_statsTüm işlevi.
Önemli |
---|
Ne zaman kullandığınız Transact-SQLişlevleri DB_ID ve OBJECT_ID bir parametre değeri döndürmek için her zaman geçerli bir kimlik döndürülür emin olun. Veritabanı veya nesne adı, ne zaman onlar yok veya yanlış yazılmış gibi bulunamazsa, iki işlev null döndürür. Verirsys.dm_db_index_operational_statsTüm işlevi null tüm veritabanları veya tüm nesneler belirtir bir joker karakter değeri yorumlar. Bu bölümdeki örneklerde, bu kasıtsız bir işlem olduğundan, veritabanı ve nesne kimliklerini belirlemek için güvenli bir şekilde görülmektedir. |
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
Ayrıca bkz.
Başvuru
Meta veri işlevler (Transact-sql)
verirsys.dm_db_index_operational_statsTüm (Transact-sql)