0

SQL Server 2008 R2 で実行する .sql ファイルが 100 個以上ありますが、手動で実行したくありません。そのため、考えられる解決策についてグーグル検索したところ、powershell を使用してこれらのスクリプトを実行できることがわかりましたが、以前は powershell を使用したことがありませんでした。以下のコマンドを見つけました-

Get-ChildItem ".\Stored Procedures\*.sql" | ForEach-Object { sqlcmd -S ServerName -d DatabaseName -E -i $_.FullName }

私はそれを自分のパラメータに置き換えました-

Get-ChildItem "C:\tables\*.sql" | ForEach-Object { sqlcmd -S 10.50.102.124 -d falhpdv1stage -E -i $_.FullName }

このコマンドを実行した後、データベースを更新しましたが、新しく実行されたテーブルが表示されません。何か不足していますか?

4

1 に答える 1

0

スクリプトを実行しているコンピューターにManagementStudioがインストールされていると仮定します。

add-pssnapin SqlServerCmdletSnapin100;
Get-ChildItem "C:\tables\*.sql" | ForEach-Object { invoke-sqlcmd -serverinstance 10.50.102.124 -database falhpdv1stage  -inputfile $_.FullName }

これは、他のすべてが正しいことも前提としています-正しく記述されたクエリ、データベースに対する適切な権限、正しいサーバーIPとデータベース名など。

于 2013-02-04T17:09:05.137 に答える