我想写一个存储过程,
delphi6+sqlserver2000
大体意思是这样的:
if field1='1' then
执行“sql语句1”;
if field1='2' then
执行“sql语句2”;
if field1='3' then
执行“sql语句3”;
像这样的语句怎么写成存储过程呀????
能否给个简单的例子。
delphi6+sqlserver2000
大体意思是这样的:
if field1='1' then
执行“sql语句1”;
if field1='2' then
执行“sql语句2”;
if field1='3' then
执行“sql语句3”;
像这样的语句怎么写成存储过程呀????
能否给个简单的例子。
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;
@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
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进行查询,然后执行之
回复人: yuvotesyg518(小不点) ( ) 信誉:100
说的就行啦回复人: czx0514(自己创业) ( ) 信誉:105
说的方法,楼主未必用得上
@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