スクリプト生成スクリプトを書いています。スクリプトは、DDLステートメントのリストを生成しています。
util_generator.sql
の生成は、データベース接続から始まります。
USE [TARGET_DATABASE]
GO
...
Many queries
Followed by print statements
...
これは非常に長いスクリプトなので、長さは不明です。 SQLCMD.exe
を使用します
sqlcmd -s sa\password -i util_generator.sql -r0 -o util_1.sql
生成されたスクリプトutil_1.sql
は次のようになります。
Changed database context to 'TARGET_DATABASE'.
CREATE TABLE ...
CREATE INDEX ...
CREATE VIEW ...
問題は生成されたスクリプトutil_1.sql
が不明なコマンドChanged database context to 'TARGET_DATABASE'.
で失敗することです
Changed database context to 'TARGET_DATABASE'.
からのSQLCMD.exe
メッセージを非表示にするには、サポートが必要です
SSMS util_generator.sql
を使用しても、Changed database context to 'TARGET_DATABASE'.
メッセージを生成せずに機能します。
ただし、不明な長さの出力スクリプトに対してCLIからSSMSでutil_generator.sql
を実行することはできません。
SQLCMD.exeのChanged database context to 'TARGET_DATABASE'.
ステートメントを抑制する方法を教えてください
Scott Hodginからのコメントに続きます。
解決策は、USE [TARGET_DATABASE]
スクリプトからutil_generator.sql
を削除することです。
そして、SQLCMD.exe
オプションを使用して-d
経由でターゲットデータベースを割り当てます。
予想されるSQLCMD.exe
は次のとおりです。
sqlcmd -s sa\password -i util_generator.sql -r0 -o util_1.sql -d TARGET_DATABASE
重大度レベルが10未満の(エラー)メッセージを抑制できます。起動オプションとして-m10を追加します。
私の知る限りでは、SQLCMDがその特定のメッセージを抑制する直接的な方法はありません。しかし、おそらく情報タイプのメッセージを(上記のように)抑制すればそれを削減できるでしょうか?
または、もちろん、Dudiの提案に従って-dスイッチを使用します。