国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server 中調(diào)整自增字段的當(dāng)前初始值

2020-07-25 13:40:20
字體:
供稿:網(wǎng)友
前幾天在把一個(gè)Communtiy Server 的數(shù)據(jù)庫從SQL 2000升級(jí)到SQL 2005 的時(shí)候,碰到一個(gè)怪異的問題,報(bào)如下錯(cuò)誤:

Violation of PRIMARY KEY constraint 'PK_cs_Threads'. Cannot insert duplicate key in object 'dbo.cs_Threads'.

分析進(jìn)去后,竟然發(fā)現(xiàn)這個(gè)表的自增字段數(shù)據(jù)庫中已經(jīng)達(dá)到了6144,而數(shù)據(jù)庫維護(hù)的這個(gè)表的初始自增值只到6109。

解決方法很簡(jiǎn)單,利用以下SQL 語句即可搞定:

DBCC CHECKIDENT ('cs_Threads')

上述語句的意思就是:如果表'cs_Threads'的當(dāng)前標(biāo)識(shí)值小于列中存儲(chǔ)的最大標(biāo)識(shí)值,則使用標(biāo)識(shí)列中的最大值對(duì)其進(jìn)行重置。

CHECKIDENT 命令可以有以下幾種寫法:

1、DBCC CHECKIDENT ('table_name', NORESEED) 

不重置當(dāng)前標(biāo)識(shí)值。DBCC CHECKIDENT 返回一個(gè)報(bào)表,它指明當(dāng)前標(biāo)識(shí)值和應(yīng)有的標(biāo)識(shí)值。 

類似如下的報(bào)表:

Checking identity information: current identity value '6109', current column value '6144'.

2、DBCC CHECKIDENT ('table_name') 或DBCC CHECKIDENT ('table_name', RESEED) 

如果表的當(dāng)前標(biāo)識(shí)值小于列中存儲(chǔ)的最大標(biāo)識(shí)值,則使用標(biāo)識(shí)列中的最大值對(duì)其進(jìn)行重置。

上述命令執(zhí)行的時(shí)候,也會(huì)報(bào)類似上面的報(bào)表。

3、DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 

當(dāng)前值設(shè)置為 new_reseed_value。

如果自創(chuàng)建表后沒有將行插入該表,則在執(zhí)行 DBCC CHECKIDENT 后插入的第一行將使用 new_reseed_value 作為標(biāo)識(shí)。否則,下一個(gè)插入的行將使用 new_reseed_value + 1。

如果 new_reseed_value 的值小于標(biāo)識(shí)列中的最大值,以后引用該表時(shí)將產(chǎn)生 2627 號(hào)錯(cuò)誤信息。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通山县| 定远县| 仁怀市| 温州市| 平潭县| 双城市| 澜沧| 满城县| 莱阳市| 德阳市| 洪江市| 宣恩县| 武陟县| 福海县| 循化| 虹口区| 昌江| 金坛市| 定襄县| 尼玛县| 方城县| 汉沽区| 黎平县| 永吉县| 河池市| 永嘉县| 淮安市| 孟村| 信阳市| 郓城县| 京山县| 泰来县| 丰原市| 石嘴山市| 松江区| 洪泽县| 大余县| 吴堡县| 天津市| 潞城市| 林口县|