select @aa  from table1   @aa 是表 table1 得一个列得名字
能不能把@aa 当作table1的一个列来处理??
高手执教!!1

解决方案 »

  1.   

    我觉得多可以,既可以再程序里面,也可以再数据库端实现。
    create procedure test (@filed nvarchar(100))
    as
    begin
      declare @strSQL nvarchar(4000)
      set @strSQL = 'select ' + @filed   + ' from test '
      exec(@strSQL) 
    end
      

  2.   

    create procedure test (@filed nvarchar(100))
    as
    begin
      declare @strSQL nvarchar(4000)
      set @strSQL = 'select ' + @filed   + ' from test '
      exec(@strSQL) 
    end
    以上得确实可以实现,假如我想把 @filed字段值赋给一个变量呢??
    如增加变量
    DECLARE @var  varchar(50)
    把赋值语句更新为
      set @strSQL = 'select ' + '@var  '+ @filed   + ' from  '
      exec(@strSQL)
      这样就会提示我变量@var  没有定义,
    请问我该怎么解决呢??
       
      

  3.   

    刚才下方代码有错误
    即:
    以上得确实可以实现,假如我想把 @filed字段值赋给一个变量呢??
    如增加变量
    DECLARE @var  varchar(50)
    把赋值语句更新为
      set @strSQL = 'select ' + '@var  '+'='+ @filed   + ' from  '
      exec(@strSQL)
      这样就会提示我变量@var  没有定义,
    请问我该怎么解决呢??
      

  4.   

    用了SQL拼接以后就不能在拼接的SQL里面给变量赋值
      

  5.   

    輸出變量就要用到sp_executesql了Declare @strSQL Nvarchar(4000) --必須為Nvarchar,不能用varchar
    Declare @filed Varchar(50),@var Varchar(50)
    Set @filed='aa'
    Set @strSQL = 'select @var ='+ @filed   + ' from  TableName'
    Exec sp_executesql @strSQL, N'@var Varchar(50) output', @var output
      

  6.   

    thanks very much,paoluo(一天到晚游泳的鱼 
      you are right!!!