SQL Server定时创建动态表

今天下午在生成奖品奖券的时候,发现由于线上奖池表的数据过多(大概已经有100多万条了),造成再生成奖券的时候,就会因为已经存在数据过多,生成数据的时候出现请求数据超时现象。于是我想怎么才能分担表的负担呢? 于是就想如果每隔一段时间,生成一个表,这样不管是查询还是导入数据,都会非常快,不影响数据库的效率。 由于是定时触发的,我第一个想到的是SQL Server中的触发器或作业。但仔细想了下,这个主要是按照时间发生的改变,还是作业比较适合。 于是现在问题,就变成,如何才能创建动态表名称呢? 网上搜了下微软的文档: http://support.microsoft.com/kb/175850/zh-cn,SQL Server有直接执行动态sql语句的方法 于是就有了下面的完整想法。 1、我先写一个动态的创建表的sql语句。代码: declare @tablename nvarchar(50) set @tablename='Dept' set @tablename=@tablename+cast(datepart(year,GETDATE()) as nvarchar(50))+cast(DATEPART(MONTH,GETDATE()) as nvarchar(50)) select @tablename execute ('CREATE TABLE '+@tablename+'( [Id] [nvarchar](32) NOT NULL, [Name] [nvarchar](32) NULL, [Description] [nvarchar](200) NULL, [CreatedDate] [datetime] NULL, [LastModified] [datetime] NULL ) ON [PRIMARY] ') 2、创建一个作业,把要执行的动态脚本复制进去,创建一个每个月触发一次的作业。 3、启动作业,查看作业是否执行。 这样,一个SQL Server自动创建动态表的逻辑就诞生了。希望对大家有帮助。

转载于:https://www.cnblogs.com/woaic/archive/2013/03/06/3942841.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值