SQL触发器按年分表存

ALTER trigger [dbo].[insert_IdleHours]
    on [dbo].[IdleHours]
    after INSERT
    as
    BEGIN
        declare
        @AutoNo numeric(18, 0) ,
        @mAutono Varchar(18),
        @TransactionDate datetime,
        @mtable varchar(200),
        @mcount int,
        @mInsert varchar(200)
        Select    @AutoNo = AutoNo from inserted;
        Select    @TransactionDate = TransactionDate from inserted;
        Select @mtable = 'IdleHours'+convert(varchar(4),YEAR(@TransactionDate))
        Set @mAutono = Cast(@AutoNo as Varchar)
        Select @mcount = count(*) from YearDataInfo where yeardata = convert(varchar(4),YEAR(@TransactionDate))
        If @mcount = 0
        Begin
            Set @mtable = rtrim(ltrim('IdleHours'+convert(char(4),YEAR(@TransactionDate))))
            if not exists(select 0 from sysobjects where name=@mtable and xtype='U')
            Begin 
                Set @mtable = 'SELECT * INTO ' + @mtable + ' FROM IdleHours2023 WHERE 1=2'
                Exec (@mtable)
                Insert Into YearDataInfo(YearData) values(convert(varchar(4),YEAR(@TransactionDate)))
            End 
        End
        Select @mInsert = 'Insert Into ' + @mtable + ' Select * from IdleHours where AutoNo = ' + @mAutoNo
        Exec(@mInsert)
    END

SQL触发器按年分表存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值