可能重复:
In SQL server is there any way to get the 'use database' command to accept a variable
我们可以通过名称更改数据库没有问题,如下所示
USE master
GO
但是我需要在脚本中使用它并在变量中包含数据库名称。怎么做到这个?
select @cmd = N'use ' + @oldDb + N';'
exec sp_executesql @cmd
这不起作用 - 当前数据库在执行后保持不变。
有可能吗?
答案 0 :(得分:5)
显然问题是在动态sql语句中使用GO,因为execute sql不支持多个批处理。请参阅此链接以获取解决方案。 Change Database with Dynamic SQL
答案 1 :(得分:-2)
也许这是有正当理由的,但如果可能,我建议在脚本中按名称命名数据库。例如
databasename.table.owner.field