sql - 如何使用可变数据库?

标签 sql tsql

我想使用一个名称存储在变量中的数据库。我该怎么做呢? 我一开始以为这行得通,但行不通:

exec('use '+@db)

这不会改变数据库上下文

有什么建议吗?

最佳答案

不幸的是,我不知道这个问题的直接解决方案。最近的工作版本是:

DECLARE @db nvarchar(MAX)
SET @db = 'use DBname'
Exec sp_executesql @db

但这只会改变过程调用长度的上下文。但是,可以在该调用中包含更多语句以利用上下文:

DECLARE @sql nvarchar(MAX)
SET @sql = 'use DBName SELECT * FROM Table1'
Exec sp_executesql @sql

关于sql - 如何使用可变数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2904370/

相关文章:

sql - 事件发生时识别日期范围的 T-SQL 查询

sql - 无法批量设置IDENTITY_INSERT

sql - 为什么sql不比较时间?

SQL 查询 - 从两个不同级别的层次结构中获取总和

sql - 将 MIN 聚合函数应用于 BIT 字段

sql - 字符串或二进制数据将被截断 - 大字符串

sql - 在 mySQL 的 WHERE IN 子句中保持排序

mysql - 还返回过去 12 个月 mysql 中具有空值的空月份

sql - 如何从Postgres中的函数向另一个表中插入错误?

mysql - 更改列名的动态过程