循环插入数据
关键就是如何一条一条记录循环插入。 批量插入,这个自增长ID。无法搞定。
--drop PROCEDURE if EXISTS P_JCB;
--GO
CREATE PROCEDURE dbo.P_JCB (
@xn VARCHAR (20) ,@xq INT )
AS
DECLARE @kcid INT ,@bID int,@jcid int --定义变量
begin TRANSACTION
--从jcb表获取学年(xn),学期(xq)的不重复班级名称,插入BJMC表
INSERT INTO dbo.BJMC (xn, xq, BJMC)
SELECT
XN,
XQ,
[班级名称]
FROM
dbo.jcb
WHERE
xn = @xn and xq=@xq
GROUP BY xn,xq,[班级名称] ;
SET @bID = @@identity;--获取插入数据的自增长ID。
--以下获取学年,学期的课程代码和课程名称,再插入kcmc表
INSERT INTO dbo.kcmc (xn, xq, kcdm, kcmc)
SELECT
XN,
XQ,
kcdm,
开设课程
FROM
dbo.JCB
WHERE
xn = @xn and xq=@xq
GROUP BY xn,xq,kcdm,开设课程
;
set @kcid = @@identity; --获取插入数据的自增长ID。
--以下获取学年,学期 不重复的教材信息 插入 JCB1表里面。
INSERT INTO dbo.JCB1 (
XN,
XQ,
ISBN,
JCMC,
CBS,
BB,
JCZZ,
XBX
)
SELECT
XN,
XQ,
教材ISBN,
教材名称,
出版社,
版别,
作者,
选必修
FROM
dbo.JCB
WHERE
xn=@xn and xq=@xq
GROUP BY xn,xq,教材isbn,教材名称,出版社,版别,作者,选必修
;
set @jcid=@@identity; --获取插入数据的自增长ID
--以下为中间表。因为是多对多关系(班级和教材关系是多对多),所以需要获取上面获取的各ID值。
INSERT INTO dbo.BJJC (xn, xq, B_ID, JC_ID, kc_ID)
VALUES(@xn,@xq,@bid,@jcid,@kcid) ;
--以下为中间表,因为是多对多关系(课程和教材,班级都是多对多),所以需要获取上面获取的各ID值。 这里我咋感觉完全没有必要这个表啊!!!
INSERT INTO dbo.kcjc (xn, xq, KC_ID, JC_ID, BJ_ID) values(@xn,@xq,@kcid,@jcid,@bid)
IF @@error = 0
BEGIN
SELECT '数据插入成功!';
COMMIT;
END
ELSE
BEGIN
ROLLBACK;
SELECT '不成功,回退';
END
相关推荐
MySQL循环插入千万级数据
1、创建测试表 CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uuid` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5999001 DEFAULT CHARSET=utf8; 2、创建一个循环插入的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`( ) BEGIN DECLARE i INT DEFAU
存储过程(循环插入数据)
使用for loop向表中批量插入数据,推荐使用plsql执行,Dbvisualizer语句执行会出错
python中将字典形式的数据循环插入Excel
主要介绍了python中将字典形式的数据循环插入Excel的方法,需要的朋友可以参考下
往mysql循环插入几千万条数据
做测试时,到mysql数据库循环插入千万条数据的java代码
sqlserver 循环临时表插入数据到另一张表
sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @subTypeNo as varchar(50), @PackageSpecID as varchar(50), @UpdateTime as varchar(50), @errorCount as int=0;


疑难问题
