Changed database context to ...
SQL の一部に が含まれている場合にメッセージを停止する方法はありますUSE database
か?
5 に答える
のエラー レベルを設定する必要があります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
...
Management Studio で (またはその他の SQLCMD バッチ コマンド)を使用するには:setvar
、表示中のクエリ ウィンドウで SQLCMD モードを有効にする必要があります ([クエリ/SQLCMD モード] メニュー)。「:」で始まる行の背景が灰色の場合、有効になっていることがわかります。
ディレクトリ内のすべての .sql スクリプトを SQLCMD で実行することにより、更新をリリースします。しかし、USE myDB を使用してすべてを開始すると、ログ ファイルに繰り返し変更されたコンテキスト メッセージが表示されます。これは退屈です。だから私は代わりにこのワンライナーを使います。コンテキストが実際に変更された場合でも、メッセージが表示されますが、これは良いことです。
IF EXISTS(SELECT DB_NAME() WHERE DB_NAME() not IN ('myDB')) USE MyDB
もう1つのアイデアは、SQLで3つの部分からなる名前を使用することです。たとえば...
USE Pubs; SELECT name FROM dbo.Authors;
...書きます...
SELECT name FROM Pubs.dbo.Authors;
私の場合、簡単でシンプルな解決策は、最初にSELECT 1;
. したがって、メッセージChanged database context...
はこの最初のクエリに結合され、次のクエリはこのエラー メッセージなしで取得されました。