问一个菜鸟问题,变量替换数据库名称行不通,可否解决?declare @name char(20)
set @name='master'
select * from @name.sys.objects/* Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '.'.  */

解决方案 »

  1.   


    declare @name char(20)
    set @name='master'
    exec('select * from '+@name+'.sys.objects')
      

  2.   

    declare @name char(20)
    set @name='master'
    exec('select * from '+@name+'.sys.objects')
      

  3.   


    declare @name char(20)
    set @name='master'
    exec('select * from '+@name+'.sys.objects')--都是山寨我的,哼哼哼
      

  4.   


    大侠,您好!比如:
    declare @name char(20)
    set @name='master'
    exec('select max(create_date) from '+@name+'.sys.objects')
    运行结果是:
    2012-04-04 10:46:33.500
    我想标记数据库来源怎么办? 即:显示结果同时标示该数据库名。
      

  5.   


    declare @name char(20)
    set @name='master'
    exec('select '''+@name+''',max(create_date) from '+@name+'.sys.objects')                     
    -------------------- -----------------------
    master               2012-03-31 11:34:07.700(1 row(s) affected)