尝试像下面
架构如你所说:
CREATE TABLE #TABLE_A (PID INT)
INSERT INTO #TABLE_A
SELECT 101
UNION ALL
SELECT 102
UNION ALL
SELECT 103
UNION ALL
SELECT 104
UNION ALL
SELECT 105
UNION ALL
SELECT 106
UNION ALL
SELECT 107
UNION ALL
SELECT 108
UNION ALL
SELECT 109
CREATE TABLE #TABLE_B (ID INT, PID INT)
INSERT INTO #TABLE_B
SELECT 1, NULL
UNION ALL
SELECT 2, NULL
UNION ALL
SELECT 3, NULL
UNION ALL
SELECT 4, NULL
UNION ALL
SELECT 5, NULL
UNION ALL
SELECT 6, NULL
UNION ALL
SELECT 7, NULL
UNION ALL
SELECT 8, NULL
UNION ALL
SELECT 9, NULL
现在有了更新的表-B下面类似的语句
UPDATE #TABLE_B SET #TABLE_B.PID = T_A.PID
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) SNO , PID FROM #TABLE_A
)AS T_A
INNER JOIN (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) SNO , ID, PID FROM #TABLE_B
)AS T_B ON T_A.SNO = T_B.SNO
WHERE #TABLE_B.ID = T_B.ID
方法2:不过硬编码
UPDATE #TABLE_B SET #TABLE_B.PID = A.PID
FROM #TABLE_A A
INNER JOIN #TABLE_B B ON A.PID-100 = B.ID
错误说明了这一切,你正试图给'tableb'的pid设置多于'1'的值。 –
表之间是否存在关系?如果是这样,请提及它。 –
是的,tableb中的p_id用作外键。我想更新tableb p_id在tableb p_id –