copytable

USE [culcleasing]
GO
/****** Object:  StoredProcedure [dbo].[copy_table]    Script Date: 07/09/2018 23:16:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
--将从临时表导到计划表中
-- =============================================
ALTER PROCEDURE [dbo].[copy_table]
    @tableA varchar(50), --数据来源表
    @fromCondtion  varchar(200),    --查询来源表的条件
    @tableB varchar(50),    --目标数据表
    @toCondtion  varchar(200),    --删除目标数据表记录的条件
    @ExcludeField varchar(200),    --排除的列名
    @OtherColumn varchar(500),    --其他列名
    @OtherValue  varchar(500)    --其他列名对应的列值
AS
BEGIN
     declare @toColumn as varchar(3900);
     declare @CopySql as varchar(8000);
     declare @DeleteSql as varchar(200);
     if(datalength(@toCondtion)>2)
     begin
     set @DeleteSql='delete from '+@tableB +' where '+@toCondtion
     --删除原数据
     exec(@DeleteSql)
     end
     print @DeleteSql
    
     select @toColumn= named   from (
    select [named]=stuff((select ','+ A.name from syscolumns A
    inner join syscolumns A1 on A.name=A1.name  
    where A.id=B.id
    and charindex(A.name,@ExcludeField)=0
    and A1.id=object_id(@tableA)    --排除来源表没有的列名
    and A.name in (select name from syscolumns where id=object_id(@tableA))--排除来源表没有的列名
    for xml path('')), 1, 1, '')
    from sysobjects B
    where id = object_id(@tableB)
    ) a
    print @toColumn+@OtherColumn
    set @CopySql='insert into '+@tableB +'('+@toColumn+@OtherColumn+') select '+@toColumn+@OtherValue+'  from '+ @tableA +' where '+@fromCondtion
    --插入新数据
    print @CopySql
    exec(@CopySql)

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值