Ответ 1
Из документов:
GO не является оператором Transact-SQL; Это это команда, признанная sqlcmd и утилиты osql и SQL Server Редактор кода Studio Management.
Либо использовать такой инструмент для выполнения script или опустить команды GO.
Я искал "окончательное" решение этого в течение нескольких часов и не могу точно выяснить, в чем проблема, поэтому я надеюсь, что кто-то может указать мне в правильном направлении.
Я пытаюсь создать script для базы данных (DBF файла DB) на удаленном компьютере и использовать его для создания той же базы данных локально. У меня есть Visual Studio 2010 на обеих машинах, поэтому я использовал мастер публикации базы данных для создания script.
Затем я создал пустую БД в Visual Studio локально (другой файл MDF файла) и был выбран для создания нового запроса. Я вставил скопированный script, но когда я попытаюсь запустить его, я получаю десятки ошибок "неправильного синтаксиса около GO". Я не уверен, сколько всего, поскольку всплывающее окно предупреждения выходит из нижней части экрана. Было бы очень много.
Я обрезал все, кроме самого верха script, и я все равно получаю с ним те же ошибки. Теперь он выглядит следующим образом:
SET ANSI_NULLS ON
GO
Я до сих пор получаю ошибку "неправильный синтаксис рядом с GO".
Есть ли что-то по своей сути неправильно с скриптами, создаваемыми этим инструментом, или я что-то не так с ним делаю?
Удаленная БД - это 2008 R2, а мой локальный - просто обычный 2008, поэтому я не просто копирую файл MDF.
Если у кого-то есть предложения, они были бы очень желанными.
Из документов:
GO не является оператором Transact-SQL; Это это команда, признанная sqlcmd и утилиты osql и SQL Server Редактор кода Studio Management.
Либо использовать такой инструмент для выполнения script или опустить команды GO.
Недавно я столкнулся с той же проблемой и нашел правильный ответ на это (я думаю).
Если вы создаете запрос в каком-то случайном редакторе, отличном от редактора кода SQL Server Management Studio в конце строки, вы можете получить символ ПЕРЕКРЫТЬ RETURN (\ r) вместо ПЕРЕВОЗКА ВОЗВРАТА + ЛИНИЯ ПОДАЧИ (\ r\n). И даже если вы нажмете клавишу DEL в конце строки, а затем Enter, она не изменится.
Использовать Notepad ++ для замены CR (\ r) для CRLF (\ r\n) - сохранить порядок, важно!