嘗試像下面
架構如你所說:
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 –