У меня есть простой скрипт, запущенный из SQL Server Management Studio, который восстанавливает (локально) резервную копию. Как только база данных будет восстановлена, мне нужно выполнить некоторую операцию над ней.Динамический USE в t-sql
Единственный способ, которым я нашел это EXEC заявление 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, остальные операторы выполняются из данных где скрипт запущен.
Вам нужно добиться этого только в SSMS? – ughai
вы можете использовать ': setvar', который может быть похож на то, что вы хотите достичь [используя этот ответ здесь] (http://stackoverflow.com/a/30479063/4436237) – ughai