0

ネットワーク上のすべてのサーバーでクエリを実行できるように、クエリを自動化する必要があります。より多くのサーバーが絶えず追加されているので、動的に保つ必要があります。テーブルには現在アクティブなサーバーのリストがありますが、それぞれが異なるデータを持っているため、それらは数回繰り返されます。また、数字のみが表示され、サーバー名には特定の形式があります。私はそれを解決するためにこれをしました:

select distinct ('swp0'+ cast(rtl_loc_id as nvarchar(4000)) +'r01') 
from basename..inv_valid_destinations

これを出力ファイルに取得しましたが、sqlcmdへの入力として使用したいと思います。各サーバー名(前の出力の各行)は、-s引数として使用する必要があります。私はこれを行うためのさまざまな方法を無駄に試しました。次のようになります。

SQLCMD -Sswp0241r01 -Uswpos -isalto_folio.sql -osalto_folio.txt

私が言ったように、より多くのサーバーが絶えず表示され、その時点ですべてのアクティブなサーバーでクエリを実行し、出力ファイルを生成する必要があります。手伝ってくれませんか。

4

1 に答える 1

1

これを本当にバッチで実行したい場合は、ループを使用できます。ここyourfileで、はサーバーのリストを含むファイルです。

for /F "tokens=*" %%A in (readme.txt) do (
    SQLCMD -S%%A -Uswpos -isalto_folio.sql -osalto_folio.txt
)
于 2013-02-18T20:10:07.230 に答える