日期:2014-05-18  浏览次数:20507 次

存储过程参数循环定义
以下是我定义的一个存储过程,如下,请较有一部分参数要循环定义怎么写(想实现一个类似 for i=1 to n 的功能)

CREATE PROC contract_test
@con_code nvarchar(50),
@con_title nvarchar(250),
@con_date datetime,
@con_a nvarchar(100), 
@con_b nvarchar(100),
@corp_id int,
@con_money numeric(9),
--下面几个参数要循环定义
@pay_date1 datetime,
@pay_money1 numeric(9),
@payment_id1 int,
@i int
AS
BEGIN
  insert into contract_info values(@con_code,@con_title,@con_date,@con_a,@con_b,@corp_id,@con_money)
  Declare @contract_id numeric
  declare @k tinyint 
  select @contract_id = max(con_id) from contract_info 
  set @k = 1 
  while @k <=@i
  begin  
  if @pay_date<>'' 
  insert into con_payment values(@contract_id,@pay_date,@pay_money,@payment_id,'1')
  set @k=@k+1
  end 
  
END
GO

------解决方案--------------------
给下面四个参数定义 个初值,当不输入时就是初值,
应该就不用循环了,那样很难弄
------解决方案--------------------
搞不明白要干什么,可以在循环外定义,循环内重新赋值可改变值