让我开始道歉,因为这可能是一个愚蠢的问题。我应该UPDATE
属于uniqueidentifier
数据类型的列,说表列是(id,username,pwd,Uuid),其中Uuid
是uniqueidentifier
列。
此Uuid
列具有多个空值。我应该通过从外部存储过程生成v1版本的uuid来对此进行更新。
我尝试了类似以下代码的方法,但是它不起作用。 (GetOptimizedUuid SP生成V1 Uuid)
DECLARE @no INT;
DECLARE @i INT;
SET @no = (SELECT COUNT(id) FROM table1)
SET @i = 0;
WHILE @i < @no
BEGIN
DECLARE @TempUuid TABLE (SeqUuid UNIQUEIDENTIFIER,
OptimizedUuid UNIQUEIDENTIFIER)
INSERT INTO @TempUuid
EXECUTE [dbo].[GetOptimizedUuid]
UPDATE table1
SET Uuid = (SELECT OptimizedUuid
FROM @TempUuid)
WHERE Uuid IS NULL AND LIMIT 1, @no;
SET @i = @i + 1;
END
如果它有7个记录,而只有2个记录具有Uuid值,如何更新以使其余5个Uuid记录具有不同的值?预先感谢!
答案 0 :(得分:0)
您可以尝试一下。
DECLARE @affectedrows INT;
SET @affectedrows = 1;
WHILE @affectedrows > 0
BEGIN
DECLARE @TempUuid TABLE (SeqUuid UNIQUEIDENTIFIER,
OptimizedUuid UNIQUEIDENTIFIER)
INSERT INTO @TempUuid
EXECUTE [dbo].[GetOptimizedUuid]
UPDATE TOP(1) table1
SET Uuid = (SELECT TOP 1 OptimizedUuid
FROM @TempUuid)
WHERE Uuid IS NULL
SET @effectedeows = @@ROWCOUNT
END