如何使用T-SQL调用exec(@sql)来更改当前数据库?

Nam*_* VU 1 t-sql database sql-server-2008-r2

可能重复:
在SQL Server中有任何方法可以使用'use database'命令来接受变量

我们可以通过他们的名字更改数据库没问题如下

USE master
GO
Run Code Online (Sandbox Code Playgroud)

但是我需要在脚本中使用它并在变量中包含数据库名称.怎么做到这个?

select @cmd = N'use ' + @oldDb  + N';'
exec sp_executesql @cmd
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 当前数据库在执行后保持不变.

有可能吗?

Bmw*_*Bmw 5

显然问题是在动态sql语句中使用GO,因为execute sql不支持多个批处理.请参阅此链接以获取解决方案.使用动态SQL更改数据库