2010-11-21 36 views
14

He estado buscando una solución "definitiva" para esto durante un par de horas y no puedo encontrar exactamente cuál es el problema, así que espero que alguien pueda señalarme en la dirección correcta.¿Cómo soluciono los errores de "sintaxis incorrecta cerca de GO" en las secuencias de comandos generadas con el Asistente de publicación de bases de datos de Microsoft?

Estoy tratando de crear un script para una base de datos (un archivo de base de datos MDF) en una máquina remota y lo uso para crear la misma base de datos localmente. Tengo Visual Studio 2010 en ambas máquinas, así que usé el Asistente de publicación de bases de datos para generar la secuencia de comandos.

A continuación, creé un DB en blanco en Visual Studio localmente (otro archivo de base de datos MDF) y lo seleccioné para crear una nueva consulta. He pegado el script copiado, pero cuando intento ejecutarlo obtengo docenas de errores de "sintaxis incorrecta cerca de IR". No estoy seguro de cuántos en total como la ventana emergente de alerta va de la parte inferior de la pantalla. Aunque parece ser mucho.

Recorté todo excepto la parte superior del guión y sigo teniendo los mismos errores con él. Ahora se ve así:

SET ANSI_NULLS ON 

GO 

Sigo recibiendo el error "sintaxis incorrecta cerca de IR" con esto.

¿Hay algún error inherente en los scripts que genera esta herramienta o estoy haciendo algo mal con ella?

El DB remoto es 2008 R2 y mi local es simplemente 2008, por lo que no copio el archivo MDF.

Si alguien tiene alguna sugerencia, sería muy bienvenido.

Respuesta

19

A partir de los documentos:

GO no es una instrucción de Transact-SQL; es es un comando reconocido por las utilidades sqlcmd y osql y el editor de código de SQL Server Management Studio.

O utilice esta herramienta para ejecutar el script u omita los comandos GO.

+4

Gracias por la información. Probablemente debería haber supuesto que sería algo así, pero creo que estaba atrapado en la idea de que Microsoft no crearía una herramienta que genere scripts de texto sin formato que no puedan ejecutarse como scripts SQL. Ah, Microsoft ... –

+0

La verdadera ironía es que los proyectos de bases de datos VS2010 * do * admiten "GO" como el separador de lotes, incluso en el cuadro de diálogo Opciones. Bastante descuidado de ellos, si me preguntas. – McGuireV10

+0

Aquí encontré un buen enfoque para una mejor comprensión de los diferentes usos de la palabra clave GO, creo que vale la pena echarle un vistazo: [Diversión con GO] (http://beyondrelational.com/modules/2/blogs/ 70/posts/10842/fun-with-go.aspx). –

8

Me encontré con el mismo problema recientemente y encontré la respuesta correcta (creo).

Si crea una consulta en algún editor aleatoria distinta editor de SQL Server Management Code estudio al final de una línea que usted puede conseguir una RETORNO DE CARRO (\ r) carácter en lugar de un RETORNO DE CARRO + avance de línea (\ r \ n). E incluso si presionas la tecla DEL al final de la línea y luego Enter no cambia.

Utilice Notepad ++ para reemplazar CR (\ r) por CRLF (\ r \ n) - mantenga el orden, ¡es importante!

+0

+1. Guau. Pasé 30 minutos atormentándome con las consultas.Gracias por la info! – gh9

Cuestiones relacionadas