昨天的需求没讲完,刚刚研究了下 发现需求有变动,
假如有,A和B表
A表有列:a1,a2,a3,a4,a5
b表有列:b1,b2,b3,b4,b5,b6
现在需求是传5个参数到存储过程c1,c2,c3,c4,c5,c6
根据c1,c2的值查询出A表对于的集合,比如select a1,a4,a5 from A where a2=c1 and a3=c2
然将A表中找出的集合混合c4,c5,c6插入到B表中,A表中找出的a1对应B表中的b1,a4对应b2,a5对应b3,c4对应b4,c5对应b5,c6对应b6
然后在然后插入B表的总数值。。
就这样了,需求应该说的比较清楚了吧。
假如有,A和B表
A表有列:a1,a2,a3,a4,a5
b表有列:b1,b2,b3,b4,b5,b6
现在需求是传5个参数到存储过程c1,c2,c3,c4,c5,c6
根据c1,c2的值查询出A表对于的集合,比如select a1,a4,a5 from A where a2=c1 and a3=c2
然将A表中找出的集合混合c4,c5,c6插入到B表中,A表中找出的a1对应B表中的b1,a4对应b2,a5对应b3,c4对应b4,c5对应b5,c6对应b6
然后在然后插入B表的总数值。。
就这样了,需求应该说的比较清楚了吧。
根据c1,c2的值查询出A表对于的集合,比如select a1,a4,a5 from A where a2=c1 and a3=c2
然将A表中找出的集合混合c4,c5,c6插入到B表中,A表中找出的a1对应B表中的b1,a4对应b2,a5对应b3,c4对应b4,c5对应b5,c6对应b6表達不清楚,所以c3沒用到
是多行数据吧?
@c1 int , --your type
@c2 ..
as
insert into B
select a1,a4,a5,c4,c5,c6
from A
where a2=c1 and a3=c2 select @@rowcount
@c1 int , --your type
@c2 ..
as
insert into B
select a1,a4,a5,@c4,@c5,@c6
from A
where a2=@c1 and a3=@c2 select @@rowcount
假如A表数据 列名: a1 a2 a3 a4 a5 a6
数据1: 1 aa bb cc dd ee
数据2: 2 aa bb gg hh ii
传5个参数aa,bb,qq,ww,ee
然后select a1,a4,a5 from A where a2='aa' and a3='bb'
然将A表中找出的集合混合qq,ww,ee插入到B表中
然后B表的数据为列名: b1 b2 b3 b4 b5 b6 b7
数据1:1 cc dd ee qq ww ee
数据2:2 gg hh ii qq ww ee
在返回一个插入B的行数,本例子为2行,则返回2行。
这下该够清楚了吧
@c varchar(2),@d varchar(2),@e varchar(2),@count int output
asinsert into B
select a1,a4,a5,@c,@d,@e
from A
where a2=@a and a3=@bselect @count = @@rowcount
CREATE TABLE A(
a1 int,
a2 varchar(20),
a3 varchar(20),
a4 varchar(20),
a5 varchar(20),
a6 varchar(20)
);INSERT INTO a(a1,a2,a3,a4,a5,a6)
SELECT
1, 'aa', 'bb', 'cc', 'dd', 'ee' UNION ALL SELECT
2, 'aa', 'bb', 'gg', 'hh', 'ii';CREATE TABLE B(
b1 int,
b2 varchar(20),
b3 varchar(20),
b4 varchar(20),
b5 varchar(20),
b6 varchar(20),
b7 varchar(20)
);DROP PROCEDURE insert_b;CREATE PROCEDURE insert_b(
@v1 NVARCHAR(20),
@v2 NVARCHAR(20),
@v3 NVARCHAR(20),
@v4 NVARCHAR(20),
@v5 NVARCHAR(20) )
AS
BEGIN
INSERT INTO b(b1,b2,b3,b4,b5,b6,b7)
SELECT a1, a4, a5, a6, @v3, @v4, @v5
FROM a
WHERE a.a2=@v1 AND a.a3=@v2;
END
EXEC insert_b 'aa','bb','qq','ww','ee';SELECT * FROM a;
SELECT * FROM b;