用于加载SQL脚本的MySQL SOURCE命令的等价物?

时间:2012-03-13 02:47:19

标签: sql-server sql-server-2008 tsql osql

在MySQL中,您可以发出如下命令:

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

source语句加载外部脚本并运行它。

SQL Server中的等价物是什么?

1 个答案:

答案 0 :(得分: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;