小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SQL --OBJECT_ID() 總結(jié)

 十三笑兮兮 2012-03-01

 


OBJECT_ID()---返回架構(gòu)范圍內(nèi)對(duì)象的數(shù)據(jù)庫(kù)對(duì)象標(biāo)識(shí)號(hào)

語(yǔ)法:

 OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] 

    object_name' [ ,'object_type' ] )

參數(shù):

' object_name '

要使用的對(duì)象。object_name 的數(shù)據(jù)類(lèi)型為 varchar nvarchar。 如果 object_name 的數(shù)據(jù)類(lèi)型為 varchar,則它將隱式轉(zhuǎn)換為 nvarchar。 可以選擇是否指定數(shù)據(jù)庫(kù)和架構(gòu)名稱。

' object_type '

架構(gòu)范圍的對(duì)象類(lèi)型。object_type 的數(shù)據(jù)類(lèi)型為 varchar nvarchar。 如果 object_type 的數(shù)據(jù)類(lèi)型為 varchar,則它將隱式轉(zhuǎn)換為 nvarchar。 有關(guān)對(duì)象類(lèi)型的列表,請(qǐng)參閱 sys.objects (Transact-SQL) 中的 type 列。

返回類(lèi)型  int

異常


對(duì)于空間索引,OBJECT_ID 返回 NULL。

出現(xiàn)錯(cuò)誤時(shí),返回 NULL

用戶只能查看其擁有的安全對(duì)象的元數(shù)據(jù),或者已對(duì)其授予權(quán)限的安全對(duì) 象的元數(shù)據(jù)。也就是說(shuō),如果用戶對(duì)該對(duì)象沒(méi)有任何權(quán)限,則那些會(huì)生成元數(shù)據(jù)的內(nèi)置函數(shù)(如 OBJECT_ID)可能返回 NULL。有關(guān)詳細(xì)信息,請(qǐng)參閱元數(shù)據(jù)可見(jiàn)性配置元數(shù)據(jù)可見(jiàn)性故障排除。

注釋


當(dāng)該參數(shù)對(duì)系統(tǒng)函數(shù)可選時(shí),則采用當(dāng)前數(shù)據(jù)庫(kù)、主機(jī)、服務(wù)器用戶或數(shù) 據(jù)庫(kù)用戶。內(nèi)置函數(shù)后面必須跟括號(hào)。

當(dāng)指定臨時(shí)表名時(shí),除非當(dāng)前數(shù)據(jù)庫(kù)為 tempdb, 否則必須在該臨時(shí)表名之前加上數(shù)據(jù)庫(kù)名稱。例如:SELECT OBJECT_ID('tempdb..#mytemptable')。

系統(tǒng)函數(shù)可以在選擇列表、WHERE 子句和任何允許使用表達(dá)式的地方使用。有關(guān)詳細(xì)信息,請(qǐng)參閱表達(dá)式 (Transact-SQL)WHERE (Transact-SQL)。

示例


A. 返回指定對(duì)象的對(duì)象 ID

以下示例返回 AdventureWorks2008R2 數(shù)據(jù)庫(kù)中 Production.WorkOrder 表的對(duì)象 ID。

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

B. 驗(yàn)證對(duì)象是否存

以下示例通過(guò)驗(yàn)證表是否具有對(duì)象 ID 來(lái)檢查指定表的存在性。如果該表存在,則將其刪除。如果該表不存在,則不執(zhí)行 DROP TABLE 語(yǔ)句。

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

C. 使用 OBJECT_ID 指定系統(tǒng)函數(shù)的參數(shù)

以下示例使用 sys.dm_db_index_operational_stats 函數(shù)返回 AdventureWorks2008R2 數(shù)據(jù)庫(kù)中 Person.Address 表的所有索引和分區(qū)信息。

重要說(shuō)明重要提示

在使用 Transact-SQL 函數(shù) DB_ID OBJECT_ID 返回參數(shù)值時(shí),請(qǐng)始終確保返回有效的 ID。如果找不到數(shù)據(jù)庫(kù)或?qū)ο蟮拿Q,例如相應(yīng)名稱不存在或拼寫(xiě)不正確,則兩個(gè)函數(shù)都會(huì)返回 NULL。sys.dm_db_index_operational_stats 函數(shù)將 NULL 解釋為指定所有數(shù)據(jù)庫(kù)或所有對(duì)象的通配符值。由于這可能是無(wú)心之舉,所以此部分中的示例說(shuō)明了確定數(shù)據(jù)庫(kù) ID 和對(duì)象 ID 的安全方法。

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

 

判斷數(shù)據(jù)庫(kù)對(duì)象是否存在

if object_id(N'對(duì)象名',N'對(duì)象類(lèi)型') is not null  執(zhí)行語(yǔ)句

 

可選對(duì)象類(lèi)型:

AF = 聚合函數(shù) (CLR)

C = CHECK 約束

D = DEFAULT(約束或獨(dú)立)

F = FOREIGN KEY 約束

FN = SQL 標(biāo)量函數(shù)

FS = 程序集 (CLR) 標(biāo)量函數(shù)

FT = 程序集 (CLR) 表值函數(shù)

IF = SQL 內(nèi)聯(lián)表值函數(shù)

IT = 內(nèi)部表

P = SQL 存儲(chǔ)過(guò)程

PC = 程序集 (CLR) 存儲(chǔ)過(guò)程

PG = 計(jì)劃指南

PK = PRIMARY KEY 約束

R = 規(guī)則(舊式,獨(dú)立)

RF = 復(fù)制篩選過(guò)程

S = 系統(tǒng)基表

SN = 同義詞

SQ = 服務(wù)隊(duì)列

TA = 程序集 (CLR) DML 觸發(fā)器

TF = SQL 表值函數(shù)

TR = SQL DML 觸發(fā)器

U = 表(用戶定義類(lèi)型)

UQ = UNIQUE 約束

V = 視圖

X = 擴(kuò)展存儲(chǔ)過(guò)程

 

例子

刪除用戶表

if object_id(N'表名',N'U') is not null drop table 表名

 

刪除存儲(chǔ)過(guò)程

if object_id(N'存儲(chǔ)過(guò)程名',N'P') is not null drop procedure 存儲(chǔ)過(guò)程名

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多