У меня есть простой скрипт, запущенный из SQL Server Management Studio, который восстанавливает (локально) резервную копию. Как только база данных восстановлена, мне нужно выполнить с ней какую-то операцию.
Единственный способ, который я нашел, - это выполнить оператор sql и добавить имя базы данных, например:
EXEC('USE ' + @dbRestoredName + ' A T-SQL STATEMENT;')
EXEC('USE ' + @dbRestoredName + ' ANOTHER T-SQL STATEMENT;')
Это, очевидно, работает, и нет проблем с небольшими операторами, но вместо этого у меня есть несколько сложных операторов, которые трудно преобразовать в строку, поэтому я хотел бы сделать это:
EXEC ('USE ' + @dbRestoredName);
A T-SQL STATEMENT;
ANOTHER T-SQL STATEMENT;
Но итог вышеизложенного в том, что ЕГЭ неэффективен, если вы знакомы с SQL SERVER Management Studio, остальные операторы выполняются из базы данных, где был запущен скрипт.
:setvar
, что может быть похоже на то, чего вы хотите достичь, используя этот ответ здесь - person ughai   schedule 04.06.2015