求的sql server2005的存储过程
需求是,A表和B表无连接关系
存储过程接受3个参数然后根据3个参数找到A表中相应的数据,在将A表中的数据插入到B表中去,表结构大体相同但有几个列不同。然后返回插入数据的条数。
求解。
需求是,A表和B表无连接关系
存储过程接受3个参数然后根据3个参数找到A表中相应的数据,在将A表中的数据插入到B表中去,表结构大体相同但有几个列不同。然后返回插入数据的条数。
求解。
调试欢乐多
@参数1 varchar(10),
@参数2 varchar(10),
@参数3 varchar(10),
@out int output
as
insert b(colist) select colist from a where col1=@参数1 --and ....
set @out=@@rowcount
我也顶一个
@参数1 varchar(10),
@参数2 varchar(10),
@参数3 varchar(10),
@out int output
as
insert b(colist) select colist from a where col1=@参数1 --and ....
set @out=@@rowcount
继续
一个帖子得了
把问题说清楚即可
DROP TABLE [a]
GO
CREATE TABLE [a](id int identity, Name NVARCHAR(10))
INSERT [a]
SELECT N'ad' UNION ALL
SELECT N'bc' UNION ALL
SELECT N'da' UNION ALL
SELECT N'ce' UNION ALL
SELECT N'ee' UNION ALL
SELECT N'fg' UNION ALL
SELECT N'gf'
GO
--SELECT * FROM [b]
--> 生成测试数据表:bIF NOT OBJECT_ID('[b]') IS NULL
DROP TABLE [b]
GO
CREATE TABLE [b](id int, Name NVARCHAR(10))
GO-->SQL查询如下:
IF NOT OBJECT_ID('[p_test]') IS NULL
DROP PROC [p_test]
GO
CREATE PROC [p_test]
@a varchar(10)='',
@b varchar(10)='',
@c varchar(10)='',
@s varchar(30)='' out
AS
INSERT b(id,Name)
SELECT id,Name FROM a
WHERE Name like '%'+@a+'%'
OR Name like '%'+@b+'%'
OR Name like '%'+@c+'%'
SET @s='已插入'+ltrim(@@ROWCOUNT)+'行记录'
GODECLARE @R VARCHAR(20)
EXEC [p_test] 'a','b','c',@R OUT
SELECT @R
/*
--------------------
已插入4行记录
*/
select * from b
/*
id Name
----------- ----------
1 ad
2 bc
3 da
4 ce(4 行受影响)
*/也猜一下。