DECLARE @A AS VARCHAR(200)
SET @A=' @数据库名.dbo.表名'
EXEC(@A)

解决方案 »

  1.   

    先谢了@kenlewis,  我的整体语句是一个很长的存储过程,这个存储过程有两个参数
    use   @database 
       go  
    exec   pro_test  @nian,@yue这样应该怎么传参数呢?
      

  2.   

    你把存储过程的参数中定义一个参数用来传递数据库名称 如 @database,
    然后存储过程中使用的时候用动态SQL,例:
    declare @sql varchar(max)set @sql='select * from '+@database+'.dbo.表名'
    exec(@sql)