Подтвердить что ты не робот

Неправильный синтаксис рядом с ''

Я пытаюсь запустить следующий довольно простой запрос в SQL Server Management Studio:

SELECT TOP 1000 * 
FROM 
    master.sys.procedures as procs
left join 
    master.sys.parameters as params on procs.object_id = params.object_id

Это кажется совершенно правильным, но я продолжаю получать следующую ошибку:

Msg 102, уровень 15, состояние 1, строка 6
Неверный синтаксис рядом с '..

Он работает, если я выберу соединение и сделаю простой выбор:

SELECT TOP 1000 *
FROM 
    master.sys.procedures as procs

Но мне нужно присоединиться к работе. Я даже не имел строку '' в этом запросе, поэтому не могу понять, что ему не нравится.

4b9b3361

Ответ 1

Такие неожиданные проблемы могут возникнуть, когда вы копируете код с веб-страницы или электронной почты, и текст содержит непечатаемые символы, такие как отдельные символы CR или LF и неразрывные пробелы.

Ответ 2

Ошибка для меня состояла в том, что я прочитал инструкцию SQL из текстового файла, и текстовый файл был сохранен в формате UTF-8 с форматом BOM (метка порядка следования байтов).

Чтобы решить эту проблему, я открыл файл в Notepad++ и в разделе "Кодирование" выбрал UTF-8. В качестве альтернативы вы можете удалить первые три байта файла с помощью шестнадцатеричного редактора.

Ответ 3

Панагиотис Канавос прав, иногда копирование и вставка T-SQL могут приводить к появлению нежелательных символов...

Наконец, я нашел простой и быстрый способ (нужен только Notepad++), чтобы определить, какой символ неправильный, без необходимости переписывать вручную весь оператор: нет необходимости сохранять какой-либо файл на диск.

Это довольно быстро, в Notepad++:

  • Нажмите "Новый файл"
  • Проверьте в меню "Кодировка": значение должно быть "Кодировать в UTF-8"; установите его, если нет
  • Вставьте свой текст enter image description here
  • В меню "Кодирование" теперь нажмите "Кодировать в ANSI" и снова проверьте свой текст enter image description here

Вы должны легко найти неправильный символ (ы)

Ответ 4

Я использовал ADO.NET и использовал команду SQL как:

 string query =
"SELECT * " +
"FROM table_name" +
"Where [email protected]";

дело в том, что я пропустил пробел в конце "FROM table_name"+ Так в основном сказано

string query = "SELECT * FROM table_nameWHERE [email protected]";

и это было причиной ошибки.

Надеюсь, поможет

Ответ 5

Я получил эту ошибку, потому что я вставил псевдоним столбцы в оператор DECLARE.

DECLARE @userdata TABLE(
f.TABLE_CATALOG nvarchar(100),
f.TABLE_NAME nvarchar(100),
f.COLUMN_NAME nvarchar(100),
p.COLUMN_NAME nvarchar(100)
)
SELECT * FROM @userdata 

ОШИБКА: Сообщение 102, уровень 15, состояние 1, строка 2 Неверный синтаксис рядом с символом ".".

DECLARE @userdata TABLE(
f_TABLE_CATALOG nvarchar(100),
f_TABLE_NAME nvarchar(100),
f_COLUMN_NAME nvarchar(100),
p_COLUMN_NAME nvarchar(100)
)
SELECT * FROM @userdata

НЕТ ОШИБОК