SQL Server分区动态生成脚本(三)(按年份划分)
--生成分区脚本
DECLARE @DataBaseName NVARCHAR(50)--数据库名称
DECLARE @TableName NVARCHAR(50)--表名称
DECLARE @ColumnName NVARCHAR(50)--字段名称
DECLARE @Location NVARCHAR(50)--保存分区文件的路径
DECLARE @PStartDay DATE--分区开始时间点
DECLARE @PEndDay DATE --分区截止时间点
DECLARE @FGStr NVARCHAR(50) --文件组名
DECLARE @FStr NVARCHAR(50) --文件名
DECLARE @Size NVARCHAR(50)='10MB'--分区初始化大小,默认为10MB
DECLARE @FileGrowth NVARCHAR(50)='100MB'--分区文件增量 ,默认值为100MB
DECLARE @sql NVARCHAR(max)
--设置下面变量
SET @DataBaseName = 'BigDBTest'
SET @TableName = 'Dim_Date'
SET @ColumnName = 'DateKey'
SET @Location = 'H:\partion\'
SET @PStartDay='2015-01-01'
SET @PEndDay='2016-02-01'
SET @FGStr = ''
SET @FStr = ''
DECLARE @Y INT
--1.创建文件组
PRINT '--1.创建文件组'
SET @Y = YEAR(@PStartDay)
WHILE @Y <= YEAR(@PEndDay)
BEGIN
SET @FGStr = @Y
SET @sql = 'ALTER DATABASE ['+@DataBaseName +'] ADD FILEGROUP [FG_'+@FGStr+']'
PRINT @sql + CHAR(13)
SET @Y = @Y+1
END
--2.创建文件
PRINT CHAR(13)+'--2.创建文件'
SET @Y = YEAR(@PStartDay)
WHILE @Y <=YEAR(@PEndDay)
BEGIN
SET @FGStr=@Y
SET @FStr=@Y
SET @sql = 'ALTER DATABASE ['+@DataBaseName +']
ADD FILE
(NAME = N''FG_'+@FStr+'_data'',FILENAME = N'''+@Location+'FG_'+@FStr+'_data.ndf'',SIZE = '+@Size+', FILEGROWTH = '+@FileGrowth+' )
TO FILEGROUP [FG_'+@FGStr+'];'
PRINT @sql + CHAR(13)
SET @Y = @Y+1
END
--3.创建分区函数
PRINT CHAR(13)+'--3.创建分区函数'
DECLARE @FunValueStr NVARCHAR(MAX)=''
SET @Y = YEAR(@PStartDay)
WHILE @Y <YEAR(@PEndDay)
BEGIN
SET @FunValueStr = @FunValueStr +''''+CAST(@Y AS NVARCHAR(4))+'-01-01'''+','
SET @Y = @Y+1
END
SET @FunValueStr = SUBSTRING(@FunValueStr,1,len(@FunValueStr)-1)
SET @sql = 'CREATE PARTITION FUNCTION
Fun_'+@ColumnName+'(date) AS RANGE RIGHT FOR VALUES('+@FunValueStr+')'
PRINT @sql + CHAR(13)
--4.创建分区方案
PRINT CHAR(13)+'--4.创建分区方案'
SET @Y = YEAR(@PStartDay)
SET @FGStr = ''
WHILE @Y<=YEAR(@PEndDay)
BEGIN
SET @FGStr =@FGStr+'[FG_'+CAST(@Y AS nvarchar(4))+'],'
SET @Y=@Y+1
END
SET @FGStr=SUBSTRING(@FGStr,1,len(@FGStr)-1)
SET @sql = 'CREATE PARTITION SCHEME Sch_'+@ColumnName+' AS
PARTITION Fun_'+@ColumnName+'
TO('+@FGStr+')'
PRINT @sql + CHAR(13)
SQL Server分区动态生成脚本(三)(按年份划分)的更多相关文章
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- (一)SQL Server分区详解Partition(目录)
一.SQL Server分区介绍 在SQL Server中,数据库的所有表和索引都视为已分区表和索引,默认这些表和索引值包含一个分区:也就是说表或索引至少包含一个分区.SQL Server中数据是按水 ...
- (原)SQL Server 系统提供功能的三个疑惑
本文目录列表: 1.SQL Server系统提供的部分疑惑概述2.系统函数调用时DEFAULT代替可选参数使用不统一3.队列字段列message_enqueue_time记录的是UTC日期时间 4.@ ...
- (二)SQL Server分区创建过程
虽然分区有很多好处(一)SQL Server分区详解Partition,却不能随意使用:且不说分区管理的繁琐,只是跨分区带来的负面影响就需要我们好好分析是否有必要使用分区.一般分区创建的业务特点:用于 ...
- SQL SERVER分区视图
借助SQL SERVER分区视图,可以对SQL中的表进行集中管理,下文将以实例的方式为您详解SQL SERVER分区视图,希望对您学习SQL数据库能有所帮助. SQL SERVER分区视图给我们提供了 ...
- sql server 分区(上)
分区发展历程 基于表的分区功能为简化分区表的创建和维护过程提供了灵活性和更好的性能.追溯到逻辑分区表和手动分区表的功能. 二.为什么要进行分区 为了改善大型表以及具有各种访问模式的表的可伸缩 ...
- SQL SERVER分区详解(1-5)
转自: (五)SQL Server分区自动化案例 (四)SQL Server分区管理 (三)索引分区知识详解 (二)SQL Server分区创建过程 (一)SQL Se ...
- SQL SERVER 2008R2 执行大脚本文件时,管理工具提示“内存不足”的解决方法
项目需求:当我把服务器上的数据库导出为SQL脚本时,在本地新建数据库,再导入执行SQL文件时报错,因为SQL文件过大,导致出现如下报错 如下图所示: ========================= ...
- SQL SERVER 2008R2 执行大脚本文件时,提示“内存不足”的解决办法
我把一个数据库的架构及数据都已脚本的方式拷贝下来,再去新建一个数据库想把脚本执行一下,但提示如下错误: 问题描述: 当客户服务器不允许直接备份时,往往通过导出数据库脚本的方式来部署-还原数据库, 但是 ...
随机推荐
- 使用drawRect有什么影响
用来画图,这个方法会在intiWithRect时候调用.这个方法的影响在于有touch event的时候之后,会重新绘制,很多这样的按钮的话就会比较影响效率.以下都会被调用1.如果在UIView初始化 ...
- 记录下mybatis中#{}和${}传参的区别
最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"&quo ...
- Lucene简介
1 lucene简介1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供 ...
- mybatis logback打印sql
<?xml version="1.0" encoding="UTF-8" ?><configuration> <contextNa ...
- POJ 3978 Primes(求范围素数个数)
POJ 3978 Primes(求范围素数个数) id=3978">http://poj.org/problem? id=3978 题意: 给你一个区间范围A和B,要你求出[A,B]内 ...
- [Angular 2] @ngrx/devtools demo
Check the Github: https://github.com/ngrx/devtools Example:
- 屏幕录像专家V7.5(完美破解版,无水印)下载
分享一个屏幕录像工具.屏幕录像专家V7.5(完美破解版,无水印).经测试可破解使用. 破解注册 点击安装.EXE,安装软件. 点击安装好的屏幕录像专家,会给你一个机器码,要你注册,复制下这个机器码(下 ...
- C#解leetcode 238. Product of Array Except Self
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...
- 原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题
document.getElementsByClassName在ie8及其以下浏览器的兼容性问题,在ie8及其以下浏览器中不能使用,针对这个问题,下面给出详细的解决方法,感兴趣的朋友可以参考下 ...
- Objective-C基础知识点总结
一.#import 和 #include 的区别,@class代表什么?@class 和 #import 的区别?#import<> 和 #import""的区别 答: ...