当前位置: 代码迷 >> Sql Server >> 怎样使用参数代替数据库名字解决方法
  详细解决方案

怎样使用参数代替数据库名字解决方法

热度:39   发布时间:2016-04-27 13:46:40.0
怎样使用参数代替数据库名字
使用环境 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 [email protected]+'.dbo.INVMB' print @sql  ---SELECT * FROM RH.dbo.INVMB
------解决方案--------------------
exec(‘SELECT *
FROM [email protected]+'+'.dbo.INVMB')
  相关解决方案