如何制止“更改数据库上下文来...”消息(How to stop the “Changed data

2019-07-29 05:32发布

有一些办法可以阻止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