我有一个名为ROWID的列,我想在其中添加升序号...用作PK。我可以运行什么脚本,只是自动添加数字1到任何东西?我知道,因为它不是一个标识列,播种它不会随着更新而增加。
所以基本上我正在寻找一个只需添加升序号的填充命令。
...谢谢
答案 0 :(得分:1)
您正在寻找AUTOINCREMENT
关键字。更多详情here。
答案 1 :(得分:0)
正如您所提到的,此列将用作主键,因此希望您不会在该列中包含任何重复项。假设您在此列中没有任何重复项,则以下查询将正常工作。
;WITH CTE
AS
(
SELECT ROWID, ROW_NUMBER() OVER (ORDER BY ROWID ASC) AS RN
FROM TABLE_NAME
)
UPDATE CTE
SET ROWID = RN
由于您希望此列成为顺序自动增量,为什么不添加标识列。遗憾的是,您可以创建现有的列标识列,因此您需要使用Identity创建另一个列。
像这样......
--Drop the existing Column 1st
ALTER TABLE Table2
DROP COLUMN ROWID
--Create a new column and make it Identity column
ALTER TABLE Table2
ADD ROWID INT NOT NULL IDENTITY(1,1)