将升序数添加到数据行

时间:2014-03-19 22:21:08

标签: sql sql-server tsql

我有一个名为ROWID的列,我想在其中添加升序号...用作PK。我可以运行什么脚本,只是自动添加数字1到任何东西?我知道,因为它不是一个标识列,播种它不会随着更新而增加。

所以基本上我正在寻找一个只需添加升序号的填充命令。

...谢谢

2 个答案:

答案 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)