在Sybase中自动生成Guids

时间:2010-04-15 13:38:41

标签: sybase

我有一张包含4200万条记录的表格。 3200万有一个空值,我想为每一个生成一个新的guid。我应该分批这样做吗?

此外,继续前进,我希望在插入新记录时添加一个新的guid。这样做的最佳方式是什么?

该字段不是主键,它是一个自动递增的整数。

2 个答案:

答案 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文档中有一个示例。