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

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

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

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

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

1 ответ

Решение

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

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;
Другие вопросы по тегам