3
有沒有辦法將表中每行的某一列設置爲某個唯一值,例如如何爲SQL Server上的列中的每一行設置唯一的ID
update mytable set myCol=rownum()
SQL Server 2000中 使用SQL(不T/SQL)我不能碰的模式,但我有一個備用列或兩個。
有沒有辦法將表中每行的某一列設置爲某個唯一值,例如如何爲SQL Server上的列中的每一行設置唯一的ID
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的,這保證是唯一的:
update #t
set col1 = NEWID()
如果你既沒有,你可以使用一個變量。這種技術因爲它沒有設置基礎,所以沒有設置,但它工作得很好:
declare @i int
set @i = 1
update #t
set col1 = @i
, @i = @i + 1
因爲你不能觸摸架構,你是否在代碼中這樣做?如果是這樣,什麼語言? – 2010-07-03 06:43:07
我想對錶執行DML SQL。我無法添加標識符列或類似的東西。 – mikemay 2010-07-03 06:52:09
是否有現有的唯一列?什麼類型的「備用」列? – Oded 2010-07-03 06:52:30