有没有一种方法可以将表中每一行的某些列设置为唯一值,例如:
update mytable set myCol=rownum()
在SQL Server 2000上使用SQL(不是T/SQL)。
我不能更改模式,但我有一两个备用列。
有没有一种方法可以将表中每一行的某些列设置为唯一值,例如:
update mytable set myCol=rownum()
在SQL Server 2000上使用SQL(不是T/SQL)。
我不能更改模式,但我有一两个备用列。
#t
替换为您的表名):update t
set t.col1 = (select COUNT(*) from #t t2 where t.pk >= t2.pk)
from #t t
如果您有一个varchar(36)
或更大的字段,您可以生成GUID,这些GUID保证是唯一的:
update #t
set col1 = NEWID()
如果两者都没有,您可以使用变量。尽管这种技术不是基于设置的,但它仍然可以很好地工作,但被视为不被赞成的技术:
declare @i int
set @i = 1
update #t
set col1 = @i
, @i = @i + 1