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

标签 database tsql sql-server-2008-r2

<分区>

Possible Duplicate:
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

那行不通 - 当前数据库在执行后保持不变。

有什么可能吗?

最佳答案

显然问题在于在动态 sql 语句中使用 GO,因为执行 sql 不支持多批处理。请参阅此链接以获取解决方案。 Change Database with Dynamic SQL

关于database - 如何使用 T-SQL 调用 exec(@sql) 来更改当前数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167025/

相关文章:

SQL Server 查询以对连续日期进行分组

php - 将另一个表列添加到通过外键链接的查询的结果中

database - 如何防止将无效日期插入 SQLite 表中?

database - 如何将 "at least one"约束(在 ER 中)转换为 SQL?

iPhone - 使用 TEXT 主键的 SQLite

sql-server - 小数类型的 SQL 列将数字 0,01 舍入为 0

c# - 如何在数千条记录中更快地选择指纹?

sql - GETDATE() 和 DateTime.Now 一样昂贵吗?

sql - 优化表中5000万条记录的删除操作

sql-server-2008 - 使用 "With Clause"SQL Server 2008