求的sql server2005的存储过程
需求是,A表和B表无连接关系 
存储过程接受3个参数然后根据3个参数找到A表中相应的数据,在将A表中的数据插入到B表中去,表结构大体相同但有几个列不同。然后返回插入数据的条数。
求解。

解决方案 »

  1.   

    create proc proc_name
    @参数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
    我也顶一个
      

  2.   

    create proc proc_name
    @参数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
    继续
    一个帖子得了
    把问题说清楚即可
      

  3.   

    --> 生成测试数据表:aIF NOT OBJECT_ID('[a]') IS NULL
    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 行受影响)
    */也猜一下。