2010-04-15 86 views
0

我有一张有4200万条记录的表。 3200万有一个空值,我想为每一个生成一个新的GUID。我应该分批做这个吗?在Sybase中自动生成GUID

另外,前进,我想要一个新的GUID添加到插入新记录的字段。做这个的最好方式是什么?

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

回答

0

您是否尝试过插入触发器?

+0

谢谢@Carly。是的,我的答案只有+1,因为您是新用户。 – 2010-04-16 21:20:24

0

有一个newid()函数来生成一个GUID。你的列应该是varchar(32)(或varbinary(16))或更大。 您应该运行在批量更新,以避免填满事务日志e.g

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