Я'м пытаясь запустить следующими достаточно простого запроса в среде SQL-сервера студии:
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
left join
master.sys.parameters as params on procs.object_id = params.object_id
Это кажется абсолютно правильным, но я постоянно получаю следующую ошибку:
МСГ 102, Уровень 15, состояние 1, строка 6 неправильный синтаксис около ''.
Это работает, если я уберу соединения и только сделать простой выбор:
SELECT TOP 1000 *
FROM
master.sys.procedures as procs
Но мне нужно присоединиться к работе. Я не'т даже у строки '' в этом запросе, так что я могу'т выяснить, что это не'т нравится.
Такие неожиданные проблемы могут возникнуть, когда вы копируете код с веб-страницы или электронной почты и текст содержит непечатаемые символы, такие как индивидуальный CR или LF и неразрывные пробелы.
Панайотис Канавос правильно, иногда скопировать и вставить Т-SQL может сделать появляются ненужные символы...
Я, наконец, нашел простой и быстрый способ (нужен только блокнот++), чтобы определить, какой символ не так, без необходимости вручную переписывать заявление: нет необходимости сохранять файлы на диск.
Это'ы довольно быстро, в Notepad++:
Вы должны легко найти неправильный символ(ы)
Ошибки для меня было то, что я читал инструкцию SQL из текстового файла и текстовый файл был сохранен в кодировке UTF-8 с BOM (метка порядка байтов формата).
Чтобы решить эту проблему, я открыл файл в Notepad++ и в соответствии с кодировкой, выбрал кодировку UTF-8. В качестве альтернативы вы можете удалить первые три байта файла hex-редактором.
Я использовал ADO.NET и с помощью команды SQL как:
string query =
"SELECT * " +
"FROM table_name" +
"Where id=@id";
что я пропустил пробел в конце"от имя_таблицы на"+` Так что в основном он говорит
string query = "SELECT * FROM table_nameWHERE id=@id";
и это вызывает ошибку.
Надеюсь, что это помогает
Я получил эту ошибку, потому что я вставил псевдоним колонки в заявить о себе.
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
НЕТ ОШИБОК