我从Superbase创建了一个SQL db文件“ Dailylog2”,然后打开FILE,基本上我正在尝试更新表dbo.SX_Tom_Table中的ROW,但是我遇到了错误。
UPDATE [SX_Tom_db].[dbo].[SX_Tom_Table]
SET [AI_Field] = Dailylog2.dl_doc_fax
FROM Dailylog2
WHERE
CONVERT(varchar(10), Dailylog2.dl_dos, 101) = CONVERT(varchar(10), 'May/20/2010', 101)
AND dl_chart = 912
LIMIT 1
我得到了错误:
信息102,级别15,状态1,第7行在“ LIMIT”附近的语法不正确。
如果我删除了LIMIT 1
,那么它可以工作,但是会更新所有行。我只想更新WHERE选择的行
答案 0 :(得分:0)
要获得更准确的答案,您应该告诉我们问题范围内每个表的列。
表格:[SX_Tom_db]。[dbo]。[SX_Tom_Table]
列:[AI_Field],?
表格:[Dailylog2]
列:dl_dos,dl_chart
表 [SX_Tom_db]。[dbo]。[SX_Tom_Table] 中的列 X 必须具有与列 [Dailylog2] 的> Y 。
首先使用SELECT
语句查看您的条件是否返回预期的要更改的行。
SELECT * FROM [SX_Tom_db].[dbo].[SX_Tom_Table] S
-- This inner join you should put the columns that must be equal in both table.
INNER JOIN
[Dailylog2] D ON S.[?] = D.[?]
WHERE
CONVERT(varchar(10), D.dl_dos, 101) = CONVERT(varchar(10), 'May/20/2010', 101)
AND D.dl_chart = 912
如果上面的查询返回了预期的行,则可以应用UPDATE
。
UPDATE
S
SET
[AI_Field] = D.dl_doc_fax
FROM
[SX_Tom_db].[dbo].[SX_Tom_Table] S
-- This inner join you should put the columns that must be equal in both table.
INNER JOIN
[Dailylog2] D ON S.[?] = D.[?]
WHERE
CONVERT(varchar(10), D.dl_dos, 101) = CONVERT(varchar(10), 'May/20/2010', 101)
AND D.dl_chart = 912