有没有办法从变量中选择数据库?
Declare @bob as varchar(50);
Set @bob = 'SweetDB';
GO
USE @bob
最佳答案
不幸的是,没有。
除非您可以将批处理的其余部分作为动态 SQL 执行。
使用 execute
动态执行 SQL 将更改 execute
语句范围的上下文,但不会对执行 语句的范围产生持久影响>执行
语句来自。
换句话说,这个:
DECLARE @db VARCHAR(100)
SET @db = 'SweetDB'
EXECUTE('use ' + @db)
不会永久设置当前数据库,但如果您像这样更改了上面的代码:
DECLARE @db VARCHAR(100)
SET @db = 'SweetDB'
EXECUTE('use ' + @db + ';select * from sysobjects')
select * from sysobjects
那么这两个查询的结果将会不同(假设您尚未在 SweetDB 中),因为在 execute
中执行的第一个选择正在 SweetDB 中执行,但第二个查询不是在 SweetDB 中执行.
关于sql - 有没有办法从变量中选择数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937271/