2 a916879788 a916879788 于 2014.08.04 19:24 提问

请问存储过程里面如何循环传参,用临时表吗??

ALTER proc [dbo].cunchu11,
@CGR nvarchar(30),
@CGRQ date,
@CGZE decimal(20,2),
@SH bit,
@SPBH nvarchar(20),
@SPLB nvarchar(20),
@SPMC nvarchar(20),
@SL int,
@DJ decimal(20,2),
@GYS nvarchar(20),
@SFJE decimal(20,2)
)
as
declare @i int
set XACT_ABORT on --只要是个错误就回滚
begin tran --开始执行事务

insert into Procure values(@DJBH,@CGR,@CGRQ,@CGZE,@SH) --增加主表

set @i=0
while @i<10
begin
--我想循环传入这些参数@DJBH,@SPBH,@SPLB,@SPMC,@SL,@DJ,@GYS,@SFJE,每次数值都不一样,不知道怎么传,循环好使,就是不知道怎么把参数传过来,sql里面没有数组,别人说能用临时表传
insert into Procure_child values(@DJBH,@SPBH,@SPLB,@SPMC,@SL,@DJ,@GYS,@SFJE) --增加子表
set @i = @i+1
end

if @@error<>0 --判断如果两条语句有任何一条出现错误
begin rollback tran --开始执行事务的回滚,恢复的转账开始之前状态
return 0
end
else

begin commit tran --执行这个事务的操作
return 1
end

本人新手,如果用临时表的话,请写清楚点。谢谢

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一段带有临时表和循环的存储过程
Create table #Temp([excel_issuer_name] [varchar](100) ,[cdo_issuer_name] [varchar](100) ,[excel_asset_name] [varchar](100) ,[cdo_facility_name] [varchar](100) ,[Asset_securityID] [varchar](100) ,[fiel
SQLSERVER存储过程不用游标循环临时表结果集
declare @deviceNos varchar(1000); declare @devicetemp table ( DEVICE_ID int, DEVICE_NO varchar(20) ); insert into @devicetemp select DEVICE_ID,DEVICE_NO from H_IMS_DEVICE
sql server 使用循环和临时表处理数据 而不用游标
declare @thismonth datetime;--本月第一秒 SELECT @thismonth=Convert(datetime, CONVERT(nvarchar(10),dateadd(dd,-day(getdate())+1,getdate()),121)+ ' 0:0' ) declare @lastmonth datetime;--上月第一秒 SELECT @lastmont
存储过程 建立临时表 通过循环
DROP PROCEDURE IF EXISTS `weather_report_cities`$$ CREATE DEFINER=`epimap`@`%` PROCEDURE `weather_report_cities`( IN p_citiesorurls VARCHAR(21845) , IN p_city_count INT, OUT p_count INT ) BEGI
SQL SERVER 建临时表、循环插入数据、游标遍历数据库
SQL SERVER 建临时表、循环插入数据、游标遍历数据库
存储过程中表名作为参数时,临时表的检索
平常总结
mysql 存储过程(临时表、循环、游标综合运用)
实现:从一张表里根据输入的值查询4条不同的记录,如果少于4条,从第一条开始查询,补足四条(注:如果碰到补足的这几条有已在原先的那几条里面的则忽略这几条) 表内容: 实现后的效果: 输入 99 call pr_youhui('99') 输入  299 call pr_youhui('299') 如果不满足4条记录则如下 表内容 输入1
sqlserver 存储过程 临时表 时间计算 循环 问题
今天要做统计网站访问量的功能。结果存储过程不会,各种系统函数也不会用。客户那边还没网络。着实憋气了。 下面是查到的一些东西 一 、临时表的使用 表名前使用一个#号,临时表是局部的,使用两个#号,临时表是全局的,在断开连接后sql会自动删除临时表 create table #a ( id int, name varchar(50) ) insert into #a(id,name) val
oracle存储过程中使用临时表
1、存储过程中动态创建表失败,提示权限问题,execute immediate 'create global temporary t1 as select * from table1';  解决:  1-授权 create any table  2-存储过程中加AUTHID CURRENT_USER 2、创建完全局临时表数据查询为空,需要用到临时表的类型知识,加关键字on commi
在oracle存储过程中创建临时表
在oracle的存储过程中,不能直接使用DDL语句,比如create、alter、drop、truncate等。 那如果我们想在存储过程中建立一张临时表就只能使用动态sql语句了: create or replace procedure pro as str_sql varchar2(100); begin -- 创建临时表 str_sql := 'create global te