2017-03-16 49 views
0

我認爲包含重複的GUID表示是相等的更新錶行查看

GUID 
---- 
1234 
5524 
1111 

然後,我有表這樣的:

ID|SomeColumn|GUID 
--+----------+---- 
1 |value1 |1111 
2 |value1 |1112 
3 |value1 |1113 
4 |value1 |5524 
5 |value1 |1234 

我想創建循環,穿行該表並更新GUID等於該視圖(表)GUID的那些行。

我綁這一點:

UPDATE DT 
    SET [GUID] = dbo.CREATE_UNIQUE_GUID(ID) 
    FROM [DetailsTable] as DT 
    INNER JOIN GUID_Duplicates as GD 
     ON DT.GUID=GD.GUID 
     WHERE DT.GUID=GD.GUID 

而且有:函數內無效使用了副作用的運營商「更新」的。

因此,在僞代碼,我想:

的foreach在複製表複製如果DataTable包含GUID爲新生成的值相同的GUID組行。

注意:我有GUID世代工作,所以我只是不確定如何使用每個視圖來瀏覽DataTable。 另外DataTable可以有多行,其中GUID等於View中的每個GUID。對於UPDATE語句

+2

標籤與正在使用的數據庫你的問題。另外,顯示你有這個代碼的編程塊。 –

回答

1

直接使用SELECT子句:

UPDATE [DetailsTable] SET [DetailsTable].[GUID] = dbo.CREATE_UNIQUE_GUID(ID) 
FROM [GUID_Duplicates] 
WHERE [DetailsTable].GUID = [GUID_Duplicates].GUID 
+0

如果原始查詢失敗,則將失敗。 –

+0

這比我更好的查詢,我喜歡它。但可能的原因是我用我的內部功能。謝謝。 – maximelian1986