我拼命想創建一個最終的表生產envirnment,但是林有一些問題....SQL UPDATE語句發出
我在我的數據庫2個表。 MyTable具有與另一個(AnotherTable)完全相同的格式。 AnotherTable具有我希望在MyTable中的最終值。
我正在嘗試更新MyTable的gq值,使其等於AnotherTable的gq值中的值。我無法在生產中使用AnotherTable,因爲它是歸檔數據...
因此我擔心。我寫了一個更新聲明(下面),試圖做到這一點。問題是我不想在每次調用此更新時更新MyTable的每一行。我的第二個where子句拋出了「不能綁定的多部分標識符」錯誤。然而,我需要在那裏有第二個where子句,以保證我不會一次更新整個數據庫的信息價值。
請幫忙!我仍然感覺像一個福利局
UPDATE MyTable
SET MyTable.gq=
(select top 1 ANotherTable.GQ as gq
from AnotherTable , MyTable
WHERE CONVERT(VARCHAR(MAX), AnotherTable.UniqueTextField)= MyTable.uniqueVarCharField
)
WHERE CONVERT(VARCHAR(MAX), AnotherTable. UniqueTextField)
= MyTable.uniqueVarCharField
這仍然會更新每一行?我怎樣才能讓它只更新我想要的行? – rockit 2009-11-25 20:14:04
您必須篩選要更新的行,而不是所有匹配的行。例如:表格是否有共同的密鑰? – gbn 2009-11-25 20:23:54