Неверный синтаксис с обновлением и лимитом - PullRequest
0 голосов
/ 14 июня 2019

Я создал файл базы данных SQL из Superbase, «Dailylog2», затем я открываю ФАЙЛ, и в основном я пытаюсь обновить строку в таблице, dbo.SX_Tom_Table, но я получаю ошибку.

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

1 Ответ

0 голосов
/ 15 июня 2019

Для более точного ответа вы должны сообщить нам столбцы каждой таблицы в рамках вашей проблемы.

Таблица: [SX_Tom_db]. [Dbo]. [SX_Tom_Table]

Столбцы: [AI_Field],?

Таблица: [Dailylog2]

Столбцы: dl_dos, dl_chart

Столбец X из таблицы [SX_Tom_db]. [Dbo]. [SX_Tom_Table] должен иметь одинаковое (отличающееся ...) значение отстолбец Y из [Dailylog2] .

Сначала используйте оператор 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...