Эквивалент команды MySQL SOURCE для загрузки скрипта для TSQL? - PullRequest
2 голосов
/ 13 марта 2012

В MySQL вы можете выдавать такие команды:

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

Оператор source загружает внешний скрипт и запускает его.

Что эквивалентно в SQL Server?

1 Ответ

4 голосов
/ 13 марта 2012

Возможно что-то вроде:

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;
...