CREATE PROCEDURE change
@billno varchar(20),
@Storehouse_chu varchar(20),
@Storehouse_ru varchar(20)
AS
----' where temp_Kaidan.good_no=@Storehouse_chu.@goodno and temp_Kaidan.good_no=@Storehouse_ru.@goodno '@Storehouse_chu,@Storehouse_ru
----set @SQLString = 'select temp_Kaidan.good_no,temp_Kaidan.good_number,@Storehouse_chu.Good_amount1,@Storehouse_ru.Good_amount2 from temp_Kaidan,@Storehouse_chu,@Storehouse_ru' +
--@Storehouse_chu,temp_Kaidan,@Storehouse_ru +
-----EXEC (@SQLString)
-----for select temp_Kaidan.good_no,temp_Kaidan.good_number,Main_Storehouse.Good_amount from temp_Kaidan,Main_Storehouse where Main_Storehouse.good_no=temp_Kaidan.good_no
DECLARE @SQLString1 nvarchar(2000)
DECLARE @SQLString2 nvarchar(2000)
DECLARE @SQLString3 nvarchar(2000)
DECLARE @SQLString4 nvarchar(2000)
DECLARE @SQLString5 nvarchar(4000)
DECLARE @SQLString6 nvarchar(4000)
set @SQLString1=@Storehouse_chu+'.Good_amount'
set @SQLString2=@Storehouse_ru+'.Good_amount'
set @SQLString3=@Storehouse_chu+'.good_no'
set @SQLString4=@Storehouse_ru+'.good_no'
---EXEC (@SQLString1)
---EXEC (@SQLString2)
---EXEC (@SQLString3)
---EXEC (@SQLString4)
insert into diaobo(bill_no,good_no,good_name,good_number,good_price)
select @billno,good_no,good_name,good_number,good_price from temp_Kaidan where good_no is not null
set @SQLString5=' temp_Kaidan.good_no,temp_Kaidan.good_number,'+@SQLString1+','+@SQLString2 +'from temp_Kaidan'+','+@Storehouse_chu+','+@Storehouse_ru +' where temp_Kaidan.good_no='+@SQLString4+' and temp_Kaidan.good_no='+@SQLString3
EXEC (@SQLString5)
DECLARE modifydata CURSOR
for select @SQLString5
OPEN modifydata
declare @tatal1 int,@tatal2 int,@data1 int,@data2 int,@data3 int,@no varchar(20)
FETCH NEXT FROM modifydata into @no,@data1,@data2,@data3
WHILE @@FETCH_STATUS = 0
BEGIN
select @tatal1=@data2-@data1 select @tatal2=@data3+@data1
update @Storehouse_chu set Good_amount=@tatal1 where good_no=@no
update @Storehouse_ru set Good_amount=@tatal2 where good_no=@no
FETCH NEXT FROM modifydata into @no,@data1,@data2,@data3
END
CLOSE modifydata
DEALLOCATE modifydata
delete from temp_Kaidan
GO
大家可以看看这个,可能会有点启发