CASE 语法在存贮过程中怎用?CREATE PROCEDURE  qd_proaddcl
@cltable1 char(10)
as 
case cltable1='yl11'
insert into yl11 (pzhm,rq,sl) values (...)
case cltable1='yl12'
insert into yl12(pzhm,rq,sl) values (...)

解决方案 »

  1.   

    改用IF吧
    CREATE PROCEDURE  qd_proaddcl
    @cltable1 char(10)
    as 
    If cltable1='yl11'
    insert into yl11 (pzhm,rq,sl) values (...)
    Else If  cltable1='yl12'
    insert into yl12(pzhm,rq,sl) values (...)
      

  2.   

    或者這樣CREATE PROCEDURE  qd_proaddcl
    @cltable1 char(10)
    as 
    insert into yl11 (pzhm,rq,sl) values (...) Where @cltable1='yl11'
    insert into yl12(pzhm,rq,sl) values (...) Where @cltable1='yl12'
      

  3.   

    换成if吧:CREATE PROCEDURE  qd_proaddcl
    @cltable1 char(10)
    as 
    if @cltable1='yl11'
      insert into yl11 (pzhm,rq,sl) values (...)
    else if @cltable1='yl12'
      insert into yl12(pzhm,rq,sl) values (...)
      

  4.   

    CREATE PROCEDURE  qd_proaddcl
    @cltable1 char(10)
    as
    declare @str varchar(8000) 
    select @str=case 
           when cltable1='yl11' then 'insert into yl11 (pzhm,rq,sl) values (...)'
           when cltable1='yl12' then 'insert into yl12 (pzhm,rq,sl) values (...)'
           else
             'select 1=1'
         end
    exec(@str)