1.重置辨別方法:
方法一:
使用Truncate
TRUNCATE TABLE name 可以删除表内所有值并重置辨別值 ,但是表内的資料将丢失。
方法二:
你想要重置辨別值(不删除資料)采用下面方法即可:但是存在問題:
1) DBCC CHECKIDENT ('表名', RESEED, new_value)(重置新的辨別值,new_value為新值)
2) 問題:如dbcc checkident ('表名',reseed,1)即可,但如果表内有資料,則重設的值如果小于目前表
的辨別最大值,再插入資料時未指定插入的辨別值,這樣會導緻辨別沖突問題,如果你的辨別設定成自
增的。此外,你也可以用 dbcc checkident('表名',reseed),即可自動重設值,最後生成值。
2.方法擴充介紹
1)DBCC CHECKIDENT
DBCC CHECKIDENT ('table_name', RESEED, new_value)
如dbcc checkident ("bc_pos",reseed,1)即可。也可以用 dbcc checkident("bc_pos",reseed)即可自動
重設值。
2)判段一個表是否具有辨別列
可以使用 OBJECTPROPERTY 函數确定一個表是否具有 IDENTITY(辨別)列.
用法:Select OBJECTPROPERTY(OBJECT_ID('表名'),'TableHASIdentity')如果有,則傳回1,否則傳回0
3)判斷某列是否是辨別列
可使用 COLUMNPROPERTY 函數确定 某列是否具有IDENTITY 屬性.
用法SELECT COLUMNPROPERTY( OBJECT_ID('表名'),'列名','IsIdentity') 是則傳回1,否則傳回0
4)查詢某表辨別列的列名
SQL Server中沒有現成的函數實作此功能,實作的SQL語句如下
語句:SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns
WHERE TABLE_NAME='表名' AND COLUMNPROPERTY(
OBJECT_ID('表名'),COLUMN_NAME,'IsIdentity')=1
5)辨別列的引用
如果在SQL語句中引用辨別列,可用關鍵字IDENTITYCOL代替
例如,若要查詢上例中ID等于1的行,以下兩條查詢語句是等價的
SELECT * FROM T_test WHERE IDENTITYCOL=1
SELECT * FROM T_test WHERE id =1
6)擷取辨別列的種子值
可使用函數IDENT_SEED 用法:SELECT IDENT_SEED ('表名')
7)擷取辨別列的遞增量
可使用函數IDENT_INCR 用法:SELECT IDENT_INCR('表名')
8)擷取指定表中最後生成的辨別值
可使用函數IDENT_CURRENT 用法:SELECT IDENT_CURRENT('表名')
注意事項:當包含辨別列的表剛剛建立,為經過任何插入操作時,使用IDENT_CURRENT函數得到的值為辨別
列的種子值,這一點在開發資料庫應用程式的時候尤其應該注意。
http://blog.sina.com.cn/s/blog_75a1e9e50100ts7q.html