我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库中如何自动创建分区函数并按月分区

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库中如何自动创建分区函数并按月分区

小编给大家分享一下数据库中如何自动创建分区函数并按月分区,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!


declare  @tableName varchar(50),  @fileGroupName varchar(50),  @ndfName varchar(50),  @newNameStr varchar(50),  @fullPath 
varchar(50),  @newDay varchar(50),  @oldDay datetime,  @partFunName varchar(50),  @schemeName varchar(50),
@sqlstr varchar(1000)


set @tableName='DYDB'
set @newDay=CONVERT(varchar(10),DATEADD(mm, DATEDIFF(mm,0,getdate()), 0), 23 )--CONVERT(varchar(100), GETDATE(), 23)--23:按天 114:按时间
set @oldDay=cast(CONVERT(varchar(10),DATEADD(mm, DATEDIFF(mm,0,getdate())-1, 0), 112 ) as datetime)
set @newNameStr=left(Replace(Replace(@newDay,':','_'),'-','_'),7)
set @fileGroupName=N'G'+@newNameStr
set @ndfName=N'F'+@newNameStr+''
set @fullPath=N'E:\\SQLDataBase\\UserData\\'+@ndfName+'.ndf'
set @partFunName=N'pf_Time'
set @schemeName=N'ps_Time'




print @fullPath
print @fileGroupName
print @ndfName




--创建文件组
if exists(select * from sys.filegroups where name=@fileGroupName)
begin
print '文件组存在,不需添加'
end
else
begin
--exec('ALTER DATABASE '+@tableName+' ADD FILEGROUP ['+@fileGroupName+']')
print 'exec '+('ALTER DATABASE '+@tableName+' ADD FILEGROUP ['+@fileGroupName+']')
print '新增文件组'
if exists(select * from sys.partition_schemes where name =@schemeName)
begin
--exec('alter partition scheme '+@schemeName+'  next used ['+@fileGroupName+']')
print 'exec '+('alter partition scheme '+@schemeName+'  next used ['+@fileGroupName+']')
print '修改分区方案'
end


print 'exec '+('alter partition scheme '+@schemeName+'  next used ['+@fileGroupName+']')
print '修改分区方案'


if exists(select * from sys.partition_range_values where function_id=(select function_id from 
sys.partition_functions where name =@partFunName) and value=@oldDay)
begin
--exec('alter partition function  '+@partFunName+'() split range('''+@newDay+''')')
print 'exec '+('alter partition function  '+@partFunName+'() split range('''+@newDay+''')')
print '修改分区函数'
end
end


--创建NDF文件
if exists(select * from sys.database_files where [state]=0 and (name=@ndfName or physical_name=@fullPath))
begin
print 'ndf文件存在,不需添加'
end
else
begin
--exec('ALTER DATABASE '+@tableName+'ADD FILE (NAME ='+@ndfName+',FILENAME = '''+@fullPath+''')TO FILEGROUP ['+@fileGroupName+']')
print 'ALTER DATABASE '+@tableName+' ADD FILE (NAME ='+@ndfName+',FILENAME = '''+@fullPath+''')TO FILEGROUP ['+@fileGroupName+']'


print '新创建ndf文件'
end
--




--分区函数
if exists(select * from sys.partition_functions where name =@partFunName)
begin
print '此处修改需要在修改分区函数之前执行'
end
else
begin
--exec('CREATE PARTITION FUNCTION '+@partFunName+'(DateTime)AS RANGE RIGHT FOR VALUES ('''+@newDay+''')')
print 'CREATE PARTITION FUNCTION '+@partFunName+'(DateTime)AS RANGE RIGHT FOR VALUES ('''+@newDay+''')'
print '新创建分区函数'
end
--分区方案
if exists(select * from sys.partition_schemes where name =@schemeName)
begin
print '此处修改需要在修改分区方案之前执行'
end
else
begin
--exec('CREATE PARTITION SCHEME '+@schemeName+' AS PARTITION '+@partFunName+' TO (''PRIMARY'','''+@fileGroupName+''')')
print ('CREATE PARTITION SCHEME '+@schemeName+' AS PARTITION '+@partFunName+' TO (''PRIMARY'','''+@fileGroupName+''')')
print '新创建分区方案'
end
--print '---------------以下是变量定义值显示---------------------'
--print '当前数据库:'+@tableName
--print '当前日期:'+@newDay+'(用作随机生成的各种名称和分区界限)'
--print '合法命名方式:'+@newNameStr
--print '文件组名称:'+@fileGroupName
--print 'ndf物理文件名称:'+@ndfName
--print '物理文件完整路径:'+@fullPath
--print '分区函数:'+@partFunName
--print '分区方案:'+@schemeName
--
end




----分区函数
--if exists(select * from sys.partition_functions where name =@partFunName)
--begin
--print '此处修改需要在修改分区函数之前执行'
--end
--else
--begin
----exec('CREATE PARTITION FUNCTION '+@partFunName+'(DateTime)AS RANGE RIGHT FOR VALUES ('''+@newDay+''')')
--print 'CREATE PARTITION FUNCTION '+@partFunName+'(DateTime)AS RANGE RIGHT FOR VALUES ('''+@newDay+''')'
--print '新创建分区函数'
--end
----分区方案
--if exists(select * from sys.partition_schemes where name =@schemeName)
--begin
--print '此处修改需要在修改分区方案之前执行'
--end
--else
--begin
----exec('CREATE PARTITION SCHEME '+@schemeName+' AS PARTITION '+@partFunName+' TO (''PRIMARY'','''+@fileGroupName+''')')
--print ('CREATE PARTITION SCHEME '+@schemeName+' AS PARTITION '+@partFunName+' TO (''PRIMARY'','''+@fileGroupName+''')')
--print '新创建分区方案'
--end

--exec sp_maintain_partion_fg 'XXXX','2013-03-20'

看完了这篇文章,相信你对“数据库中如何自动创建分区函数并按月分区”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库中如何自动创建分区函数并按月分区

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何创建 PHP 函数库并使其支持自动加载?

如何创建 php 函数库并使其支持自动加载?创建一个 php 函数库,并定义函数。编写一个自动加载函数,该函数会根据类名加载相应的 php 文件。使用 spl_autoload_register() 注册自动加载函数,php 将在需要时自动
如何创建 PHP 函数库并使其支持自动加载?
2024-04-27

如何在Oracle数据库中创建用户并分配权限

要在Oracle数据库中创建用户并分配权限,可以按照以下步骤进行操作:使用sys用户登录到Oracle数据库。执行以下SQL语句创建新用户:CREATE USER new_user IDENTIFIED BY password;其中,new
如何在Oracle数据库中创建用户并分配权限
2024-03-02

如何创建 PHP 函数库并将其分发给其他人?

本文介绍了创建、测试和分发 php 函数库的步骤,以简化开发并提高代码质量。创建函数库: 在文件夹中创建一个主 php 脚本,定义函数。测试函数库: 创建一个测试脚本,包含函数库并调用函数,断言输出。分发函数库:通过 composer:创建
如何创建 PHP 函数库并将其分发给其他人?
2024-04-27

分区如何在分片数据库系统中提高性能

分区可以为分片数据库系统提供许多好处,包括更快的查询执行。人们需要了解它是如何工作的。

springBoot中如何实现java自动创建数据库表功能

小编给大家分享一下springBoot中如何实现java自动创建数据库表功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SpringBoot环境启动项目创建数据
2023-06-20

Python中如何搭建自己的量化分析数据库

本篇文章给大家分享的是有关Python中如何搭建自己的量化分析数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。手把手教你搭建自己的量化分析数据库引言:数据是金融量化分析的重
2023-06-02

编程热搜

目录