我正在尝试将数据库名称存储在变量中:
DECLARE @SQLString varchar(max)
DECLARE @DBIn varchar(50)
SET @DBIn ='myDB'
SET @SQLString = 'USE ' + @DBIn
select @SQLString
EXEC(@SQLString)
执行此代码时没有错误,但它实际上并不起作用(数据库不会像我只运行USE [myDB]
那样改变。)
答案 0 :(得分:2)
为什么不直接将数据库名称添加到schema.table名称?
DECLARE @SQLString varchar(max)
DECLARE @DBIn varchar(50)
SET @DBIn ='myDB'
SET @SQLString = 'SELECT * FROM ' + @DBIn + '.dbo.MyTable'
select @SQLString
EXEC(@SQLString)
答案 1 :(得分:0)
为@SQLString中包含的脚本更改了DB名称。 例如,下面的代码将起作用:
DECLARE @SQLString varchar(max)
DECLARE @DBIn varchar(50)
SET @DBIn ='myDB'
SET @SQLString = 'USE ' + @DBIn+ ' SELECT TOP 100 * FROM dbo.MyTable'
select @SQLString
EXEC(@SQLString)