sql創(chuàng)建和修改標(biāo)識符列-禁用列的 IDENTITY 屬性
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
通過使用 IDENTITY 屬性可以實(shí)現(xiàn)標(biāo)識符列。 這使得開發(fā)人員可以為表中所插入的第一行指定一個(gè)標(biāo)識號(Identity Seed 屬性),并確定要添加到種子上的增量(Identity Increment 屬性)以確定后面的標(biāo)識號。將值插入到有標(biāo)識符列的表中之后,SQL Server 2005 Database Engine 會(huì)通過向種子添加增量來自動(dòng)生成下一個(gè)標(biāo)識值。 在用 IDENTITY 屬性定義標(biāo)識符列時(shí),請注意下列幾點(diǎn): 一個(gè)表只能有一個(gè)使用 IDENTITY 屬性定義的列,且必須通過使用 decimal、int、numeric、smallint、bigint 或 tinyint 數(shù)據(jù)類型來定義該列。 可指定種子和增量。二者的默認(rèn)值均為 1。 標(biāo)識符列不能允許為空值,也不能包含 DEFAULT 定義或?qū)ο蟆?在設(shè)置 IDENTITY 屬性后,可以使用 $IDENTITY 關(guān)鍵字在選擇列表中引用該列。還可以通過名稱引用該列。 OBJECTPROPERTY 函數(shù)可用于確定一個(gè)表是否具有 IDENTITY 列,COLUMNPROPERTY 函數(shù)可用于確定 IDENTITY 列的名稱。 通過使值能夠顯式插入,SET IDENTITY_INSERT 可用于禁用列的 IDENTITY 屬性。 ---全局唯一標(biāo)識符------ 盡管 IDENTITY 屬性在一個(gè)表內(nèi)自動(dòng)進(jìn)行行編號,但具有各自標(biāo)識符列的各個(gè)表可以生成相同的值。這是因?yàn)?IDENTITY 屬性僅在使用它的表上保證是唯一的。 如果應(yīng)用程序必須生成在整個(gè)數(shù)據(jù)庫或世界各地所有網(wǎng)絡(luò)計(jì)算機(jī)的所有數(shù)據(jù)庫中均為唯一的標(biāo)識符列,請使用 ROWGUIDCOL 屬性、uniqueidentifier 數(shù)據(jù)類型和 NEWID 函數(shù)。 使用 ROWGUIDCOL 屬性定義 GUID 列時(shí),請注意下列幾點(diǎn): 一個(gè)表只能有一個(gè) ROWGUIDCOL 列,且必須通過使用 uniqueidentifier 數(shù)據(jù)類型定義該列。 數(shù)據(jù)庫引擎 不會(huì)自動(dòng)為該列生成值。若要插入全局唯一值,請為該列創(chuàng)建 DEFAULT 定義來使用 NEWID 函數(shù)生成全局唯一值。 在設(shè)置 ROWGUIDCOL 屬性后,通過使用 $ROWGUID 關(guān)鍵字可以在選擇列表中引用該列。 這與通過使用 $IDENTITY 關(guān)鍵字可以引用 IDENTITY 列的方法類似。 OBJECTPROPERTY 函數(shù)可用于確定一個(gè)表是否具有 ROWGUIDCOL 列,COLUMNPROPERTY 函數(shù)可用于確定 ROWGUIDCOL 列的名稱。 由于 ROWGUIDCOL 屬性不強(qiáng)制唯一性,因此應(yīng)使用 UNIQUE 約束來保證插入到 ROWGUIDCOL 列中的值是唯一的。 SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF } 備注 任何時(shí)候,一個(gè)會(huì)話中只有一個(gè)表的 IDENTITY_INSERT 屬性可以設(shè)置為 ON。如果某個(gè)表已將此屬性設(shè)置為 ON,則對另一個(gè)表發(fā)出 SET IDENTITY_INSERT ON 語句時(shí),SQL Server 2005 將返回一個(gè)錯(cuò)誤信息,指出 SET IDENTITY_INSERT 已設(shè)置為 ON,并報(bào)告已將其屬性設(shè)置為 ON 的表。 如果插入值大于表的當(dāng)前標(biāo)識值,則 SQL Server 自動(dòng)將新插入值作為當(dāng)前標(biāo)識值使用。 SET IDENTITY_INSERT 的設(shè)置是在執(zhí)行或運(yùn)行時(shí)設(shè)置的,而不是在分析時(shí)設(shè)置的。 該文章在 2012/2/11 0:28:48 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |