有一些办法可以阻止Changed database context to ...
消息时,一块SQL都有一个USE database
中呢?
Answer 1:
您需要设置错误级别的sqlcmd
,缺省值为0注意:不要用的退出代码在这里混淆错误级别sqlcmd
时返回,说, cmd.exe
作为ERRORLEVEL
。
要禁用所有的这个消息sqlcmd
会话,使用-m
命令行选项:
sqlcmd -m 1 <other options>
要禁用代码块这个消息,使用:setvar
批处理命令:
USE [mydb]
GO
-- Disable message for next USE command
:setvar SQLCMDERRORLEVEL 1
USE [mydb]
GO
-- Reenable
:setvar SQLCMDERRORLEVEL 0
...
要使用:setvar
Management Studio中(或其他SQLCMD批处理命令),您需要启用您在(菜单中的“查询/ SQLCMD模式”)是查询窗口的SQLCMD模式。 你会看到,它被启用,开始时用线“:”有一个灰色背景。
Answer 2:
另一个想法是在你的SQL使用三部分名称,例如,而不是...
USE Pubs; SELECT name FROM dbo.Authors;
...写...
SELECT name FROM Pubs.dbo.Authors;
Answer 3:
我具有SQLCMD运行目录中的所有我的.sql脚本发布更新。 但是当你开始使用USE MYDB你在日志文件中得到了反复变化方面的消息,这是平淡的一切。 于是,我用这一个班轮来代替。 如果上下文实际上是改变了,你还得到消息,这是很好的。
IF EXISTS(SELECT DB_NAME() WHERE DB_NAME()NOT IN( 'MYDB'))使用MYDB
Answer 4:
在我的情况下,容易和简单的解决方案是第一运行一个小的查询,如SELECT 1;
。 该消息Changed database context...
被因此耦合到该第一查询并没有这种错误消息被检索下列查询。
文章来源: How to stop the “Changed database context to …” message