2

MySQL では、次のようなコマンドを発行できます。

drop database foo;
create database foo;
use foo;
source c:\src\bar.sql

このsourceステートメントは、外部スクリプトをロードして実行します。

SQL Server で同等のものは何ですか?

4

1 に答える 1

4

おそらく次のようなものです:

EXEC master..xp_cmdshell 'sqlcmd -S . -E -d "database name" -i "c:\src\bar.sql"';

代わりに特定の SQL 認証アカウントが必要な場合は、次のように言えます。

EXEC master..xp_cmdshell 'sqlcmd -S . -U user -P pass -d db -i "c:\src\bar.sql"';

これを移植可能にし、インスタンス名をハードコーディングしない場合 (上記はデフォルトのインスタンスを想定しています)、次のようにします。

DECLARE @sql NVARCHAR(MAX) = N'sqlcmd -S "' + @@SERVERNAME + '" -E'
    + ' -d db -i "c:\src\bar.sql"';

EXEC master..xp_cmdshell @sql;
于 2012-03-13T02:53:35.210 に答える