sql-server - 更新具有唯一标识符值的多行的列
问题描述
让我先道歉,因为这可能是一个愚蠢的问题。我应该是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 记录具有不同的值?提前致谢!
解决方案
你可以试试这个。
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
推荐阅读
- paypal - Paypal 集成 - ionic3 中的付款不可处理错误?
- python - 根据我的多个 python 脚本创建 setup.py
- angular - 我想将文件数据附加到 formBuilder 对象中 怎么办 帮帮我
- lean - 例如: (p ∨ q) ∧ (p ∨ r) → p ∨ (q ∧ r)
- c - 结构中的字符串
- python - 这是来自 Python 的“c”函数吗?
- scala - Scala BeforeAndAfter 中的多个前/后块
- python - 使用 Python 将 JSON 反序列化为二进制文件
- jenkins - 在 Jenkins 管道中循环执行时 Groovy 的意外行为
- kubernetes - 负载均衡 Pod