我想写一个存储过程,
delphi6+sqlserver2000
大体意思是这样的:
if field1='1' then
 执行“sql语句1”;
if field1='2' then
 执行“sql语句2”;
if field1='3' then
 执行“sql语句3”;
 
像这样的语句怎么写成存储过程呀????
能否给个简单的例子。

解决方案 »

  1.   

    if ADOQuery1.FieldByName('name').Value='1' then
     sqlstr:=“sql语句1”;
    if ADOQuery1.FieldByName('name').Value='2' then
     sqlstr:=“sql语句2”;
    if ADOQuery1.FieldByName('name').Value='3' then
    sqlstr:=“sql语句3”;adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.text:=sqlstr;
    adoquery1.open;
      

  2.   

    CREATE PROCEDURE sp_RunSQLCommand
      @Option int
    as
    begin
      if @Option = 1 
        EXECUTE 'SQL语句1'
      else
        if @Option = 2 
          EXECUTE 'SQL语句2'
        else
          if @Option = 3
            EXECUTE 'SQL语句3'       
    end
      

  3.   

    2种处理方法
    1、2个参数的存储过程
    参数1:@Field
    参数2:@SQL语句的列表,可以用一个分隔符分开;如:SQL1|SQL2|....
    这样的存储过程主要的问题是要解析SQL语句的列表
    2、1个参数的存储过程
    参数:@Field
    sql语句存放到数据表中,这样的操作比较简单,数据表的设计可以是这样的
    c_Field char(1),
    vc_SQLList varchar(2000)/或其他数据类型(如Text,Memo,Blob等)
    这样的操作比较简单,SQL语句在数据表中可以根据@Field进行查询,然后执行之
      

  4.   

    一般来说用
    回复人: yuvotesyg518(小不点) ( ) 信誉:100 
    说的就行啦回复人: czx0514(自己创业) ( ) 信誉:105 
    说的方法,楼主未必用得上
      

  5.   

    CREATE PROCEDURE sp_RunSQLCommand
      @Option int
    as
    begin
      if @Option = 1 
        EXECUTE 'SQL语句1'
      else
        if @Option = 2 
          EXECUTE 'SQL语句2'
        else
          if @Option = 3
            EXECUTE 'SQL语句3'       
    end