Как исправить ошибки "неправильного синтаксиса рядом с GO" в сценариях, созданных с помощью Microsoft Database Publishing Wizard?

Я искал "окончательное" решение этого в течение нескольких часов и не могу точно выяснить, в чем проблема, поэтому я надеюсь, что кто-то может указать мне в правильном направлении.

Я пытаюсь создать script для базы данных (DBF файла DB) на удаленном компьютере и использовать его для создания той же базы данных локально. У меня есть Visual Studio 2010 на обеих машинах, поэтому я использовал мастер публикации базы данных для создания script.

Затем я создал пустую БД в Visual Studio локально (другой файл MDF файла) и был выбран для создания нового запроса. Я вставил скопированный script, но когда я попытаюсь запустить его, я получаю десятки ошибок "неправильного синтаксиса около GO". Я не уверен, сколько всего, поскольку всплывающее окно предупреждения выходит из нижней части экрана. Было бы очень много.

Я обрезал все, кроме самого верха script, и я все равно получаю с ним те же ошибки. Теперь он выглядит следующим образом:

SET ANSI_NULLS ON

GO

Я до сих пор получаю ошибку "неправильный синтаксис рядом с GO".

Есть ли что-то по своей сути неправильно с скриптами, создаваемыми этим инструментом, или я что-то не так с ним делаю?

Удаленная БД - это 2008 R2, а мой локальный - просто обычный 2008, поэтому я не просто копирую файл MDF.

Если у кого-то есть предложения, они были бы очень желанными.

Ответы

Ответ 1

Из документов:

GO не является оператором Transact-SQL; Это это команда, признанная sqlcmd и утилиты osql и SQL Server Редактор кода Studio Management.

Либо использовать такой инструмент для выполнения script или опустить команды GO.

Ответ 2

Недавно я столкнулся с той же проблемой и нашел правильный ответ на это (я думаю).

Если вы создаете запрос в каком-то случайном редакторе, отличном от редактора кода SQL Server Management Studio в конце строки, вы можете получить символ ПЕРЕКРЫТЬ RETURN (\ r) вместо ПЕРЕВОЗКА ВОЗВРАТА + ЛИНИЯ ПОДАЧИ (\ r\n). И даже если вы нажмете клавишу DEL в конце строки, а затем Enter, она не изменится.

Использовать Notepad ++ для замены CR (\ r) для CRLF (\ r\n) - сохранить порядок, важно!