+ -
当前位置:首页 → 问答吧 → 如何在存储过程中拷贝记录

如何在存储过程中拷贝记录

时间:2011-12-07

来源:互联网

有一个BOM表,表中很多记录的一个关键字(比如product_id)都是一样的值(比如都是“AAA”)
我想新建记录,直接从所有“AAA”的记录拷贝到“BBB”
用存储过程如何写?
SQL code

CREATE PROCEDURE [dbo].[CopyNode]
(
    @product_id varchar(25),
    @product_id_new varchar(25)
)
AS
declare @lft int
declare @rgt int
if exists(select product_id from BOM where product_id = @product_id)
    begin
        SET XACT_ABORT ON
        BEGIN TRANSACTION
            select * from BOM where product_id = @product_id
                           //如何写呢?
            //insert into BOM where product_id = @product_id
        COMMIT TRANSACTION
        SET XACT_ABORT OFF
    end

作者: zyx040404   发布时间: 2011-12-07

select * from BOM where product_id = @product_id
  //如何写呢?
  //insert into BOM where product_id = @product_id
:
insert into bom
select 除了product_id 列外的其他所有列,'BBB'
from bom where product_id='AAA'

注意上面product_id在字段列表中的位置.

作者: qianjin036a   发布时间: 2011-12-07

SQL code
insert into BOM select ....from BOM where product_id='AAA'

作者: szstephenzhou   发布时间: 2011-12-07

SQL code

SET XACT_ABORT ON
BEGIN TRANSACTION
 insert into BOM
 select @product_id_new,[product_id外的其他字段] 
   from BOM where product_id = @product_id
COMMIT TRANSACTION

作者: ap0405140   发布时间: 2011-12-07

SQL code
insert into BOM select @product_id_new,其他字段 from BOM where product_id = @product_id

作者: fredrickhu   发布时间: 2011-12-07