我写了一段存储过程想用变量替代字段
CREATE PROCEDURE vo_zhcx
@zd varchar(10)
AS
select * from volvo  where  @zd='小修'
GO调用
declare @zd varchar(10) set @zd='bxlx'  exec vo_zhcx @zd
只显示该表的一排字段,没有数据
如何用变量替代字段

解决方案 »

  1.   

    CREATE PROCEDURE vo_zhcx 
    @zd varchar(10) 
    AS 
    EXEC('select * from volvo  where  '+@zd+'=''小修''' )
    GO 
      

  2.   

    CREATE PROCEDURE vo_zhcx 
    @zd varchar(10) 
    AS 
    EXEC('select * from volvo  where  '+@zd+'=''小修''' ) 
    GO 
      

  3.   

    CREATE PROCEDURE vo_zhcx 
    @zd varchar(10) 
    AS 
    --select * from volvo  where  @zd='小修' 
    EXEC('select * from volvo  where  '+ @zd + '='''小修''') 
    GO 
      

  4.   

    用EXEC 动态执行exec('select * from volvo  where  '+@zd+'=''小修''' )
      

  5.   

    declare @zd varchar(10) set @zd='bxlx'  
    --exec vo_zhcx @zd 
    --CREATE PROCEDURE vo_zhcx 
    --@zd varchar(10) 
    --AS 
    PRINT('select * from volvo  where  '+@zd+'=''小修''' ) 
    --GO 
    /*select * from volvo  where  bxlx='小修'
      

  6.   


    create TABLE tb1(ID int identity,  StartTime   datetime,     EndTime datetime)
    INSERT TB1 select
      '2009-09-26'  ,    '2009-09-30' union all select 
      '2009-10-20' ,     '2009-10-31' declare @field varchar(20)
    set @field='EndTime'
    exec('select * from tb1 where '+@field+'=''2009-09-30''')ID          StartTime               EndTime
    ----------- ----------------------- -----------------------
    1           2009-09-26 00:00:00.000 2009-09-30 00:00:00.000drop table tb1