2016-06-08 2 views
0

Я пытаюсь обновить столбец даты 1 до даты в будущем, иначе известный как выведенный из эксплуатации. Я получаю синтаксическую ошибку в выражении FROM. Нет другой информации, которую я даю, кромеОшибка ввода синтаксиса (инструкция FROM)

НЕПРАВИЛЬНЫЙ СИНТАКС ВБЛИЗИ 'FROM'.

UPDATE [database1].[dbo].[table1] 
SET [database1].[dbo].[table1].[datecolumn1] = '9999-12-31 00:00:00.000' 
WHERE [database1].[dbo].[table1].[END_DATE] > GETDATE() 
FROM [database1].[dbo].[table1] 
INNER JOIN [database2].[dbo].[table2] ON [database1].[dbo].[table1].[namecolumn1] = [database2].[dbo].[table2].[namecolumn2] 
GO 
+0

Почему вы хотите хранить ' '9999-12-31 00: 00: 00.000''? Похоже на реальное решение для взлома ... – jarlh

+0

Быстрый взгляд на официальную документацию MSDN ** ** (https://msdn.microsoft.com/en-us/library/ms177523.aspx) мог бы легко показать, что неправильно с вашим заявлением ... –

+0

@marc_s Я знаю, что я заглушил /: –

ответ

3

Ваш пункт WHERE должен быть после FROM:

UPDATE [database1].[dbo].[table1] 
SET [database1].[dbo].[table1].[datecolumn1] = '9999-12-31 00:00:00.000' 
FROM [database1].[dbo].[table1] 
INNER JOIN [database2].[dbo].[table2] ON [database1].[dbo].[table1].[namecolumn1]=[database2].[dbo].[table2].[namecolumn2] 
WHERE [database1].[dbo].[table1].[END_DATE] > GETDATE() 
GO 
2

Предложение where должен прийти последним. Кроме того, у вас есть опечатка в слове «innner» (должно быть «внутренним» - или еще лучше, просто поместите его полностью):

UPDATE [database1].[dbo].[table1] 
SET [database1].[dbo].[table1].[datecolumn1] = '9999-12-31 00:00:00.000' 
FROM [database1].[dbo].[table1] 
JOIN [database2].[dbo].[table2] ON 
     [database1].[dbo].[table1].[namecolumn1] = 
     [database2].[dbo].[table2].[namecolumn2] 
WHERE [database1].[dbo].[table1].[END_DATE] > GETDATE() 
Смежные вопросы