declare @db_name varchar(100)
declare @aa varchar(1000)
...
set @db_name ='table'
...
...
set @aa = 'select * from ' +  @db_name
exec(@aa)
--打开@db_name记录的数据库
use  ?

解决方案 »

  1.   

    用动态SQLdeclare @db_name varchar(100)
    declare @aa varchar(1000)
    ...
    set @db_name =' DB1'
    ...
    ...
    set @aa = 'USE ' +  @db_name +' SELECT ....'
    exec(@aa)
      

  2.   

    可以动态使用USE,但其他语句也要同时动态执行。如:
    exec('use '+@db_name +' select * from tablename')
      

  3.   

    Yang_(扬帆破浪)你好,又见到你了, 真高兴!!!我对这个问题的看法是,为什么不用databasename..tablename?当然你的方法也是对的.