22,300
社区成员




-- 测试数据
DECLARE @a TABLE(jus int, tid int identity, val int)
INSERT @a(jus,val)
SELECT 1,33 UNION ALL
SELECT 0,21 UNION ALL
SELECT 1,22 UNION ALL
SELECT 0,18 UNION ALL
SELECT 1,45 UNION ALL
SELECT 1,16
--SELECT * FROM @a
-- 参数
DECLARE @tid int
SET @tid = 2
-- 多次测试
DECLARE @i int
SET @i = 1
WHILE @i<=3
BEGIN
-- 更新
UPDATE a
SET a.val = t.val
FROM @a a,
(
SELECT TOP 1 *
FROM @a
WHERE jus = 1
ORDER BY NEWID()
) t
WHERE a.tid = @tid
-- 查看结果
SELECT *
FROM @a
WHERE tid = @tid
SET @i = @i + 1
END
jus tid val
----------- ----------- -----------
0 2 33
jus tid val
----------- ----------- -----------
0 2 45
jus tid val
----------- ----------- -----------
0 2 33