有2个TABLE,其中ANo, BNo is PK, auto increament
TABLE AA TABLE BB
-------------- --------
ANo BID Val Note BNo Val
-------------- --------
150 TS 0
151 YH 1
152 BH 1
153 EE 0
154 OP 1
Step 1. 把TABLE AA.Note=1的Val,写入TABLE BB.Val
Step 2. 把TABLE BB.BNo写回对应的TABLE AA.BID
结果如下
TABLE AA TABLE BB
-------------- --------
ANo BID Val Note BNo Val
-------------- --------
150 TS 0 9 YH
151 9 YH 1 10 BH
152 10 BH 1 11 OP
153 EE 0
154 11 OP 1
如何做出上面动作呢(是不是用loop?)?谢谢
------解决思路----------------------
--借用#1楼的数据
--定义表变量
DECLARE @T TABLE(ID INT, val varchar(10))
--先获取自增键
INSERT INTO BB(val)
OUTPUT INSERTED.Bno,INSERTED.val INTO @T
SELECT Val FROM AA
WHERE Note=1
--然后更新自增键
;WITH CTE AS(
SELECT ID,ROW_NUMBER()OVER(ORDER BY val)RN FROM @T
)
,CTE1 AS(
SELECT *,ROW_NUMBER()OVER(ORDER BY val)RN FROM AA
WHERE Note=1
)
UPDATE T1
SET BID=T2.ID
FROM CTE1 T1
JOIN CTE T2 ON T1.RN=T2.RN
--查看结果
SELECT * FROM AA