作为标题,我有一个已经填充了150000条记录的现有表。我添加了一个Id列(目前为空)。
我假设我可以运行一个查询,用增量数字填充这个列,然后设置为主键并打开自动增量。这是正确的做法吗?如果是,我怎么填入初始数字?
作为标题,我有一个已经填充了150000条记录的现有表。我添加了一个Id列(目前为空)。
我假设我可以运行一个查询,用增量数字填充这个列,然后设置为主键并打开自动增量。这是正确的做法吗?如果是,我怎么填入初始数字?
当前回答
试试下面的代码:
DBCC CHECKIDENT ('settings', RESEED, 0)
其他回答
我遇到了这个问题,但不能使用标识列(由于各种原因)。 我决定这样做:
DECLARE @id INT
SET @id = 0
UPDATE table SET @id = id = @id + 1
从这里借的。
试试下面的代码:
DBCC CHECKIDENT ('settings', RESEED, 0)
Alter table /**粘贴tabal的名称**/ 添加id int (1,1)
删除/**,粘贴tabal的名称**/ id在哪里
(
选择a.d id FROM /**粘贴tabal的名字/作为a 左外连接( SELECT MIN(id) as id 从/粘贴tabal的名称/ 集团 /粘贴列c1,c2 ....* * /
) as t1
ON a.id = t1.id
在t1。id为空
)
Alter table /**粘贴tabal的名称**/ DROP列id
如果这个列在你的表中已经存在,并且它是空的,你可以用这个命令更新这个列(替换id, tablename和tablekey):
UPDATE x
SET x.<Id> = x.New_Id
FROM (
SELECT <Id>, ROW_NUMBER() OVER (ORDER BY <tablekey>) AS New_Id
FROM <tablename>
) x
这在MariaDB中工作,所以我只能希望它在SQL Server中做到:删除刚刚插入的ID列,然后使用以下语法
增加表的主键
不需要另一张桌子了。这只是插入一个id列,使其成为主索引,并用顺序值填充它。如果SQL Server不这样做,我很抱歉浪费了你的时间。