主鍵到現有的表我有8000行數據的表,將增加更多。但我忘了在開始時輸入主鍵。這樣每一行都有唯一的密鑰。後來我添加了一個主鍵列。但該列現在是NULL。添加自動遞增在SQL Server 2005
我想的第一行開始於ID爲1,增加一路攀升到最後一行ID 8000如何使用單個查詢更新所有行的?
我使用SQL Server 2005的
主鍵到現有的表我有8000行數據的表,將增加更多。但我忘了在開始時輸入主鍵。這樣每一行都有唯一的密鑰。後來我添加了一個主鍵列。但該列現在是NULL。添加自動遞增在SQL Server 2005
我想的第一行開始於ID爲1,增加一路攀升到最後一行ID 8000如何使用單個查詢更新所有行的?
我使用SQL Server 2005的
打開表設計,添加新列u要選擇在標識規範列和屬性使(是身份)是.. 您可以從您希望通過設置標識種子屬性,默認情況下它從開始啓動。
如果您已經標識列ü也可以更新它。
第1步:從表設計中的列中刪除標識規範。
步驟2:使用光標更新表格列,從1開始。
步驟3:再次應用表格設計中的列標識規範
步驟4:通過查詢重置標識列,從值u want。 e.g DBCC CHECKIDENT("TableName",Reseed,8000);
所以下一個標識值將是8001
這真的很奏效....我解決了t ..謝謝你ppl ... – user2541172
CREATE TABLE [dbo].[TheTable](
[TheID] [int] IDENTITY(1,1) NOT NULL,
[TheColumn] [nvarchar](100) NOT NULL,
CONSTRAINT [PK_TheTable] PRIMARY KEY CLUSTERED
(
[TheID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [dbo].[TheTable]
([TheColumn])
SELECT 'one'
UNION
SELECT 'two'
SELECT * FROM [dbo].[TheTable] TT
您可以根據唯一的密鑰更新表。 申報@i INT = 1個 而(@i < =(選擇從表COUNT(*))) 開始
更新表 設置primary_key_column = @我 凡
設置@我= @我+1 結束
根據您的要求,你只需要一個SQL查詢,將更新爲新的主鍵值整個表以增量方式。這裏是:
UPDATE myTable
SET ID = ID + 1
其中ID爲PK字段名
更新一次,不要忘了添加標識列,如下圖所示:
ALTER TABLE table
ADD ID INT IDENTITY
ALTER TABLE table
ADD CONSTRAINT PK_table
PRIMARY KEY(ID)
擺脫你剛纔添加的列。然後運行這個
ALTER TABLE table
ADD ID INT IDENTITY
ALTER TABLE table
ADD CONSTRAINT PK_table
PRIMARY KEY(ID)
你是怎麼添加主鍵列? 您需要設置身份種子和增量值,您是否這樣做? 如果添加標識,該列不會爲空,它會自動生成值 – Appyks
可能的重複[忘記將主鍵列添加爲標識](http://stackoverflow.com/questions/18996250/forgot-to- add-primary-key-column-as-identity) – Nithesh
@Nithesh ..在你標記爲重複的鏈接..我想它說如何添加主鍵..但問題是如何填充NULL值PK字段在單個查詢中遞增。 – pordi