MySQL では、次のようなコマンドを発行できます。
drop database foo;
create database foo;
use foo;
source c:\src\bar.sql
このsource
ステートメントは、外部スクリプトをロードして実行します。
SQL Server で同等のものは何ですか?
MySQL では、次のようなコマンドを発行できます。
drop database foo;
create database foo;
use foo;
source c:\src\bar.sql
このsource
ステートメントは、外部スクリプトをロードして実行します。
SQL Server で同等のものは何ですか?
おそらく次のようなものです:
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;