返回多条记录存储过程并带有其他操作

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:19:56
我写的存储过程如下:
但是就是不知道怎么只执行一条记录的操作
alter proc Gudingfeiyong
as
declare @MedID bigint
declare @PaitID bigint
declare @MedName nvarchar(20)
declare @MedClass nvarchar(20)
declare @MedType nvarchar(20)
declare @MedUnit nvarchar(20)
declare @UnitPrice decimal(18,4)
declare @MedQuantity decimal(18,4)
declare @ZifuPrice decimal(18,4)
declare @RecordDoc int
select @MedID=A.MedID,@PaitID=A.PaitID,@MedName=A.MedName,@MedClass=A.MedClass,
@MedType=A.MedType,@MedUnit=A.MedUnit,@UnitPrice=A.UnitPrice,
@MedQuantity=A.MedQuantity,@ZifuPrice=A.ZifuPrice,@RecordDoc=A.RecordDoc FROM
InPaitGudingDet as A LEFT JOIN PaitInfos as B on A.PaitID=B.PaitID and
B.InHosp='1' AND B.IsOut='0'
print @MedName
begin
insert into InPaitMedDet
(MedID,PaitID,MedName,MedClass,MedType,MedUnit,UnitPrice,
MedQuantity,ZifuPrice,RecordDoc,RecordTime,MedStatus)
values
(@MedID,@PaitID,@MedN

你这样当然只有一条记录,我建议先把select into 到一张零时表里,然后用cursor一行一行插入

缺少循环,肯定只会执行一条语句
你select的时候出来的是一个集合数据,很多条数据
而insert、Update时因为不是循环,所以只执行了一次

你必须把select出来的数据集合,into到一张临时表,然后取最大行数进行循环取数,然后依次进行修改操作