我的视图包含重复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
并且:在函数中使用副作用运算符'UPDATE'无效。
所以在伪代码中我想:
如果DataTable包含具有相同GUID设置GUID的行到新生成的值,则复制表中的foreach复制。
注意:我有guid生成工作,所以我不知道如何使用每个视图值浏览DataTable。 此外,DataTable可以有多行,其中GUID等于View中的每个GUID。
答案 0 :(得分:1)
直接使用SELECT子句用于UPDATE语句:
UPDATE [DetailsTable] SET [DetailsTable].[GUID] = dbo.CREATE_UNIQUE_GUID(ID)
FROM [GUID_Duplicates]
WHERE [DetailsTable].GUID = [GUID_Duplicates].GUID