¿Hay alguna manera de detener el mensaje Changed database context to ...
cuando la pieza de SQL tiene un USE database
?Cómo detener el mensaje "Cambió el contexto de la base de datos a ..."
Respuesta
Es necesario configurar el errorlevel de sqlcmd
, que por defecto es 0. Nota: No confunda el nivel de error aquí con el código de salida de sqlcmd
que se devuelve a, por ejemplo, como el cmd.exe
ERRORLEVEL
.
para deshabilitar este mensaje para todos una sesión sqlcmd
, utilice la opción -m
de comandos:
sqlcmd -m 1 <other options>
para deshabilitar este mensaje para un bloque de código, utilice el comando :setvar
lote:
USE [mydb]
GO
-- Disable message for next USE command
:setvar SQLCMDERRORLEVEL 1
USE [mydb]
GO
-- Reenable
:setvar SQLCMDERRORLEVEL 0
...
Para usar :setvar
(u otros comandos de lote SQLCMD) en Management Studio, debe habilitar el modo SQLCMD para la ventana de consulta en la que se encuentra (menú "Modo Consulta/SQLCMD"). Verá que está habilitado, cuando las líneas que comienzan con ':' tienen un fondo gris.
Excelente, funcionó una delicia. Gracias por la ayuda – SteveC
Hola, recibí este mensaje cuando ejecuté una aplicación creada usando Delphi. Necesito modificar las bases de datos en el medio. Tu camino está funcionando en SQL Management Studio pero cuando intenté pasar el cmd del código, recibí el error como "Sintaxis incorrecta cerca de'@P1 '. ¿Alguien tiene una solución para esto? – kvsbhavani
@ kvsbhavani Eso es lo esperado. La sintaxis ': setvar' es parte del llamado" modo por lotes ", que solo es soportado por SQLCMD.EXE y SSMS (mira el último párrafo de mi respuesta). Si estás manejando esto en tu propio código Sugiero que publique una nueva pregunta en SO. –
Otra idea es utilizar nombres de tres partes en su SQL, p. Ej. en lugar de ...
USE Pubs; SELECT name FROM dbo.Authors;
... escribir ...
SELECT name FROM Pubs.dbo.Authors;
Gracias por el puntero ... no estoy seguro de que me apetezca desambiguar todo mi código :-) – SteveC
Lo intenté - no funcionó aquí. – Algoman
posiblemente no funcionó porque todavía tenía la llamada mssql_select_db después de conectarme (que afaik también emite un comando USE) ...No sé, resolví el problema agregando un SELECT 1 después de cada uso (como se sugirió user2335044) – Algoman
En mi caso, una solución fácil y sencilla consistía en ejecutar una consulta primero a pequeña escala, tales como SELECT 1;
. Por lo tanto, el mensaje Changed database context...
se acopló a esta primera consulta y las siguientes consultas se obtuvieron sin este mensaje de error.
Lanzo actualizaciones haciendo que SQLCMD ejecute todos mis scripts .sql en un directorio. Pero cuando comienzas todo con USE myDB, obtienes un mensaje de contexto repetitivo cambiado en el archivo de registro, que es aburrido. Así que uso este delineador en su lugar. Si el contexto realmente se cambia, todavía recibes el mensaje, lo cual es bueno.
SI EXISTE (SELECCIONAR DB_NAME() DONDE DB_NAME() no en ('myDB')) USO MyDB
Esta es una gran idea ya que significa que puedo ejecutar el script en la ventana de consulta (sin tener que activar el modo SQLCMD) y usarlo con SQLCMD sin que oscurezca los mensajes de error debido a la repetida salida de cambio de contexto. – LawrenceF
- 1. Detener las lecturas de la base de datos demorando el procesamiento de la ui web
- 2. ¿Cómo manejar el contexto de datos anidados en el BL?
- 3. Cómo mostrar el mensaje emergente sin tener un contexto
- 4. ¿Cómo pasar el contexto de una actividad a otra?
- 5. ¿Por qué me aparece el mensaje "Falló el inicio de sesión de la base de datos" en Crystal Reports al usar el objeto .NET como fuente de datos?
- 6. Conexión a la base de datos MySQL en el servidor
- 7. ¿Cómo obtengo el contexto de la intención?
- 8. ¿El nombre 'Base de datos' no existe en el contexto actual?
- 9. Cuándo simular el acceso a la base de datos
- 10. Recomendaciones para el acceso a la base de datos C#
- 11. ¿Cómo prueba (unidad) el esquema de la base de datos?
- 12. cómo decidir entre el acceso directo a la base de datos y el proveedor de contenido?
- 13. cómo obtener el valor de la base de datos a una matriz de cadenas en Android (base de datos SQLite)
- 14. Detener el acceso a Internet en el emulador Android
- 15. Copia de datos relacionales de la base de datos a la base de datos
- 16. Detener el usuario salga de la página web, a excepción de cuando la presentación del modelo
- 17. ¿Cómo obtener el tamaño de la base de datos mysql?
- 18. ¿Cómo cambiar el propietario de la base de datos PostgreSql?
- 19. La posición del cursor cambió el evento
- 20. Gestión de conexión de base de datos de contexto de linq a sql
- 21. Cómo convertir el archivo de base de datos H2Database a la base de datos MySQL archivo .sql?
- 22. pista si el objeto cambió
- 23. Cómo guardar el modelo Backbone.js en la base de datos
- 24. ¿Cómo paso el contexto a una función?
- 25. Cómo generar el modelo desde la base de datos
- 26. El IP del host de Wordpress cambió
- 27. ¿Cómo agregar datos iniciales a la base de datos SQLite?
- 28. La selección de cuadro combinado cambió el evento sin cambiar la selección en el ComboBox
- 29. cómo mostrar el mensaje de alerta en el controlador
- 30. ¿Cómo "actualizar" la base de datos en el mundo real?
dónde sacas estos mensajes? Nunca he visto uno antes –
@ ta.speot.is los ve, por ejemplo, cuando usa 'SQLCMD.exe'? –