我拼命想创建一个最终的表生产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