2009-07-23 17 views

Respuesta

6

El comportamiento de interrupción por lotes en error es un SQL Server (es decir. Backend) opción y se rige por gravedad error. No hay forma de cambiar el comportamiento del servidor, los errores que interrumpen el lote siempre interrumpirán el lote y el período.

El comportamiento de la continuación de archivo (ejecuta el siguiente lote delimitado por GO después del error) es una opción sqlcmd y está controlado por el modificador -b. Por defecto está activado (es decir, sqlcmd continúa con el siguiente lote).

7

Utilice la bandera -V en la línea de comandos. Si establece un valor lo suficientemente grande (por ejemplo, 17), incluso los errores bastante graves no detendrán el script.

p. Ej. sqlcmd ... -V 17 -i MyFile.sql

Supongo que sabe lo que está haciendo cuando hace esto y, sin embargo, está supervisando los mensajes de error.

Puede ir más alto, hasta el nivel 25, pero si obtiene errores entre el nivel 17 y 25, es poco probable que pueda progresar mucho porque suelen ser causados ​​por software o hardware errores en el servidor, en lugar de errores en los scripts que está ingresando. (http://msdn.microsoft.com/en-us/library/aa937483(v=sql.80).aspx)

Cuestiones relacionadas