首页 新闻 会员 周边

sql 自动生成下个月库问题 谢谢!

0
悬赏园豆:10 [已解决问题] 解决于 2016-04-19 08:12

比如有数据库 post201501(有表a)

希望下个月自动生成库 post201502(此库要有a的表结构 不要数据)

具体的利用作业这些细节配置  我知道。(只要脚本)

但是脚本我的有问题。

declare @dbname varchar(20),
        @NextMonth datetime,
        @Yeah varchar(4),
        @Month varchar(2)

    set @NextMonth = dateadd(month,1,getDate())
    set @Yeah = cast(year(@NextMonth) as varchar(4))
    select @Month = case when month(@NextMonth) >= 10 then cast(month(@NextMonth) as varchar(2)) else '0' + cast(month(@NextMonth) as varchar(2)) end
    set @dbname='post' + @Yeah + @Month

    declare @sql varchar(5000)
    set @sql ='
            IF NOT EXISTS(select * from sys.databases where name = ''' + @dbname +''')
            BEGIN
                CREATE DATABASE ' + @dbname + ' ON PRIMARY
                (
                    NAME = N''' + @dbname + ''',FILENAME = N''D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\'+@dbname + '.mdf'',SIZE = 3072KB,FILEGROWTH = 1024KB
                )
                LOG ON
                (
                    NAME = N''' + @dbname + '_log'',FILENAME = N''D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\'+@dbname + '_log.ldf'',SIZE = 1024KB,MAXSIZE = 2048MB,FILEGROWTH = 10240KB
                )
            END
    '

    exec (@sql)    

我这样生成库 没把表(结构带过来。)

s_p的主页 s_p | 初学一级 | 园豆:138
提问于:2016-03-13 21:39
< >
分享
最佳答案
1

貌似不用这么麻烦,

1、建立个每个月指定时间的job,这个作业去执行存储过程。

2、在存储过程中可以建立想要的表

select * into TableNext from TableName

select into 会自动copy表结构(不带数据)

收获园豆:10
chengeng | 菜鸟二级 |园豆:294 | 2016-03-31 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册