有没有一种方法来选择变量的数据库?
-
06-09-2019 - |
题
有一种方法来选择从一个可变数据库?
Declare @bob as varchar(50);
Set @bob = 'SweetDB';
GO
USE @bob
解决方案
不幸的是,没有
除非你能执行批处理动态SQL的其余部分。
使用execute
动态执行SQL将更改execute
声明的范围的范围内,但不会离开你执行从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正在执行,但第二个是不
其他提示
declare @NewDB varchar(50)
set @NewDB = 'NewDB'
execute('use ' + @NewDB)
<强> #TempTables将跨越GOS presist 强>
可以创建在第一批,插入/选择在必要或任何以下的批处理数据的表。
这里是一些示例语法:
CREATE TABLE #YourTableName
(
col1 int not null primary key identity(1,1)
,col2 varchar(10)
)
不隶属于 StackOverflow