怎样使用参数代替数据库名字
使用环境 SQL SERVER 2005
测试代码
declare @DataBaseName nvarchar(20);
SET @DataBaseName='RH'
SELECT *
FROM @DataBaseName+'.dbo.INVMB'
错误提示:
Incorrect syntax near '+'.
因为经常需要使用不同的数据库,所以想在存储过程中
EXEC ‘RH’ 或 EXEC ‘LOOS’ 直接修改数据库就很简单了
请问该怎样修改才能实现
------解决方案-------------------- declare @DataBaseName nvarchar(20);
SET @DataBaseName='RH'
exec('SELECT * FROM ' + @DataBaseName + '.dbo.INVMB')
当数据库名,表名,列名为变量时,需要拼接SQL,动态执行之.
------解决方案--------------------SQL code
declare @DataBaseName nvarchar(20),@sql varchar(2000)
SET @DataBaseName='RH'
set @sql='SELECT * FROM '+@DataBaseName+'.dbo.INVMB'
print @sql ---SELECT * FROM RH.dbo.INVMB
------解决方案--------------------
exec(‘SELECT *
FROM ’+@DataBaseName+'+'.dbo.INVMB')