Эквивалент команды 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;