我有一张包含4200万条记录的表格。 3200万有一个空值,我想为每一个生成一个新的guid。我应该分批这样做吗?
此外,继续前进,我希望在插入新记录时添加一个新的guid。这样做的最佳方式是什么?
该字段不是主键,它是一个自动递增的整数。
答案 0 :(得分:0)
您是否尝试过插入触发器?
答案 1 :(得分:0)
有一个newid()函数来生成guid。您的列应该是varchar(32)(或varbinary(16))或更大。 您应该批量运行更新以避免填写事务日志,例如
set rowcount 10000
while exists (select 1 from mytab where myid is null)
update mytab set myid = newid() where myid is null
set rowcount 0
您不需要触发器 - 只需将该函数绑定为列默认值即可。 Sybase文档中有一个示例。