2009-10-28 42 views
0

我正在將Access數據庫轉換爲SQL Server 2005.我已經使用SSMA成功遷移了數據和原始模式,現在正在對數據庫進行規範化處理要求我添加一些唯一的標識符。不尊重種子值的SQL Server 2005標識規範

我們有的一些列以前是使用自動編號數據類型創建的,這很好。但是,我需要爲其他數據創建無意義但唯一的標識符,所以我使用帶有Identity Specification屬性的int數據類型。我在'101'播種,以保持此數據高於當前存在的數據已經具有唯一標識符的範圍,因爲它們最終將駐留在同一個表中。

我的問題是,當我使用種子值爲'101'且增量爲'1'的Identity Specification創建新的int時,數字從'1'開始。我試圖種下:

USE dbMyDatabase 
DBCC checkident(tblMyTable, reseed, 101) 

無濟於事。任何建議將不勝感激。提前致謝!

+0

你使用的是CREATE TABLE myTbl(ID int IDENTITY(101,1))還是別的? – 2009-10-28 19:27:37

+0

我最初使用帶有「New Column ...」命令的SQL Server Manager Express創建了該字段。我只是刪除它,並再次使用加列: USE dbMyDatabase ALTER TABLE tblMyTable ADD FLDID INT IDENTITY(101,1) 和它的工作就像一個魅力。對於微軟的「快捷方式」,我越來越感到憤怒,尤其是對於SSMA和SQL Server Manager而言,但我應該更好地瞭解並親自完成。 感謝您的回覆!它現在完美。 – 2009-10-28 19:42:19

回答

1

解決方案是通過手動使用SQL查詢來創建列。通過「新建列...」選項添加它每次都會產生不正確的結果。現在我添加了它

USE dbMyDatabase 
ALTER TABLE tblMyTable 
ADD fldID INT IDENTITY(101,1) 

它工作得很好。