问下有关表分区的一些问题。

小雄 2014-08-26 10:09:45
RT。。关于表分区的。
我现在有一个存储过程来添加分区需要用的文件与文件组,如下:
if(charindex('Enterprise',@@version)>0 and (day(getdate())=1 or day(getdate())=11 or day(getdate())=21))
BEGIN
declare @filename varchar(100)
declare @adddate DATETIME
set @adddate=getdate()
--添加新的分区,存储最新数据
set @filename = db_name() + '.' + Convert(varchar(10),@adddate,112)
if not exists(select * from sys.database_files where name=@filename)
begin
--添加文件组
set @sql =' Alter database [' + db_name() +'] add filegroup ['+ @filename +']'
exec sp_executesql @sql
--添加文件
declare @filepath varchar(1000)
select top 1 @filepath = filename from sysfiles
set @sql =' Alter database [' + db_name() +'] add file ( name = N'''+ @filename +''', filename = N'''+replace(@filepath,db_name()+'.mdf','') + @filename+'.ndf'' , size = 3072KB , filegrowth= 1024KB ) TO filegroup ['+@filename+']'
exec sp_executesql @sql
--修改分区架构
set @sql =' alter partition scheme partdatescheme next used ['+ @filename +']'
exec sp_executesql @sql
--修改分区函数
set @sql =' alter partition function partdatefunc() split range('''+ Convert(varchar(10),@adddate,121) +''')'
exec sp_executesql @sql
end
end
意思是每月的1号,11号,21号都会去新建一个文件来进行分区。但是现在有个问题,如果我数据库是从老数据库升级上来的。(老数据库是没有进行分区的),就会提示我分区方案与分区函数不存在。(我这里执行的都是修改).
所以我想问下,如何查询数据库里面是否已经存在某个分区方案与分区函数了,我打算如果不存在就新建分区方案跟函数。存在就修改。
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小雄 2014-08-26
  • 打赏
  • 举报
回复
引用 4 楼 DBA_Huangzj 的回复:
还有sys.partitions都可以用上,我现在没有现成脚本,你自己组织一下吧
谢拉
發糞塗牆 2014-08-26
  • 打赏
  • 举报
回复
还有sys.partitions都可以用上,我现在没有现成脚本,你自己组织一下吧
發糞塗牆 2014-08-26
  • 打赏
  • 举报
回复
sys.partition_schemes 类似的啊
小雄 2014-08-26
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
从sys.partition_functions中查询是否有分区函数
select * from sys.partition_functions where type='R' AND NAME='partdatefunc' 这个是判断分区函数是否存在。。那分区方案勒?、
發糞塗牆 2014-08-26
  • 打赏
  • 举报
回复
从sys.partition_functions中查询是否有分区函数

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧