精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SQL Server如何動態生成分區腳本

數據庫 SQL Server
在SQL Server 2005中只能通過SQL腳本來創建表分區,而在SQL Server 2008的SSMS中已經提供了操作界面進行表分區,但是也不能把操作生成SQL腳本,所以,下面的SQL的應用場景包括SQL Server 2005、SQL Server 2008。

一、前言

前段時間使用表分區比較多,雖然已經寫了解惑:對SQL Server分區進行合并(刪除)SQL Server 2005 分區模板與實例,但是在實踐中一直感覺修改SQL腳本的時間比較多,一直想抽個時間來把分區腳本進行動態化,今天終于付之于行動了。需要說明的一點,下面的腳本并不能滿足所有情況,用戶可以根據自己的需要進行相應的調整,應該可以滿足你的需求的。

在SQL Server 2005中只能通過SQL腳本來創建表分區,而在SQL Server 2008的SSMS中已經提供了操作界面進行表分區,但是也不能把操作生成SQL腳本,所以,下面的SQL的應用場景包括SQL Server 2005、SQL Server 2008。

二、分解

下面就是生成分區的腳本了,在執行之前,你需要填寫數據庫名稱、表名、分區表字段、需要的分區數、保存分區文件的路徑、分區初始化大小、分區文件的增量、分區邊界值;

這 里的分區邊界值是按照int類型進行增量計算的,比如你想以每100W進行范圍分區的話,那你只要設置@FunValue為100W;如果你的分區邊界值 是其它類型值或者是不等范圍的分區,那么你只要修改這個變量為字符串,并對分區函數的生成代碼進行相應修改就可以滿足你的需求了。

通常情況下,我們會以一個表Id(int),并且是自增作為分區字段,這樣就很容易區分歷史數據了,而且對分區的操作隔離也是最明顯的。

  1. --生成分區腳本 
  2. DECLARE @DataBaseName NVARCHAR(50)--數據庫名稱 
  3. DECLARE @TableName NVARCHAR(50)--表名稱 
  4. DECLARE @ColumnName NVARCHAR(50)--字段名稱 
  5. DECLARE @PartNumber INT--需要分多少個區 
  6. DECLARE @Location NVARCHAR(50)--保存分區文件的路徑 
  7. DECLARE @Size NVARCHAR(50)--分區初始化大小 
  8. DECLARE @FileGrowth NVARCHAR(50)--分區文件增量 
  9. DECLARE @FunValue INT--分區分段值 
  10. DECLARE @i INT 
  11. DECLARE @PartNumberStr NVARCHAR(50) 
  12. DECLARE @sql NVARCHAR(max
  13.  
  14.  
  15. --設置下面變量 
  16. SET @DataBaseName = 'MyDataBase' 
  17. SET @TableName = 'User' 
  18. SET @ColumnName = 'Id' 
  19. SET @PartNumber = 4 
  20. SET @Location = 'E:\DataBase\' 
  21. SET @Size = '30MB' 
  22. SET @FileGrowth = '10%' 
  23. SET @FunValue = 10000000
  1. --1.創建文件組 
  2. SET @i = 1 
  3. PRINT '--1.創建文件組' 
  4. WHILE @i <= @PartNumber 
  5. BEGIN 
  6.     SET @PartNumberStr = RIGHT('0' + CONVERT(NVARCHAR,@i),2) 
  7.     SET @sql = 'ALTER DATABASE ['+@DataBaseName +'] 
  8. ADD FILEGROUP [FG_'+@TableName+'_'+@ColumnName+'_'+@PartNumberStr+']' 
  9.     PRINT @sql + CHAR(13) 
  10.     SET @i=@i+1 
  11. END 
  12.  
  13.  
  14. --2.創建文件 
  15. SET @i = 1 
  16. PRINT CHAR(13)+'--2.創建文件' 
  17. WHILE @i <= @PartNumber 
  18. BEGIN 
  19.     SET @PartNumberStr = RIGHT('0' + CONVERT(NVARCHAR,@i),2) 
  20.     SET @sql = 'ALTER DATABASE ['+@DataBaseName +'] 
  21. ADD FILE 
  22. (NAME = N''FG_'+@TableName+'_'+@ColumnName+'_'+@PartNumberStr+'_data'',FILENAME = N'''+@Location+'FG_'+@TableName+'_'+@ColumnName+'_'+@PartNumberStr+'_data.ndf'',SIZE = '+@Size+', FILEGROWTH = '+@FileGrowth+' ) 
  23. TO FILEGROUP [FG_'+@TableName+'_'+@ColumnName+'_'+@PartNumberStr+'];' 
  24.     PRINT @sql + CHAR(13) 
  25.     SET @i=@i+1 
  26. END 
  27.  
  28. --3.創建分區函數 
  29. PRINT CHAR(13)+'--3.創建分區函數' 
  30. DECLARE @FunValueStr NVARCHAR(MAX
  31. SET @i = 1 
  32. SET @FunValueStr = '' 
  33. WHILE @i < @PartNumber 
  34. BEGIN 
  35.     SET @FunValueStr = @FunValueStr + convert(NVARCHAR(50),(@i*@FunValue)) + ',' 
  36.     SET @i=@i+1 
  37. END 
  38. SET @FunValueStr = substring(@FunValueStr,1,len(@FunValueStr)-1) 
  39. SET @sql = 'CREATE PARTITION FUNCTION 
  40. Fun_'+@TableName+'_'+@ColumnName+'(INTAS 
  41. RANGE RIGHT 
  42. FOR VALUES('+@FunValueStr+')' 
  43. PRINT @sql + CHAR(13)  
  44.  
  45. --4.創建分區方案 
  46. PRINT CHAR(13)+'--4.創建分區方案' 
  47. DECLARE @FileGroupStr NVARCHAR(MAX
  48. SET @i = 1 
  49. SET @FileGroupStr = '' 
  50. WHILE @i <= @PartNumber 
  51. BEGIN 
  52.     SET @PartNumberStr = RIGHT('0' + CONVERT(NVARCHAR,@i),2) 
  53.     SET @FileGroupStr = @FileGroupStr + '[FG_'+@TableName+'_'+@ColumnName+'_'+@PartNumberStr+'],' 
  54.     SET @i=@i+1 
  55. END 
  56. SET @FileGroupStr = substring(@FileGroupStr,1,len(@FileGroupStr)-1) 
  57. SET @sql = 'CREATE PARTITION SCHEME 
  58. Sch_'+@TableName+'_'+@ColumnName+' AS 
  59. PARTITION Fun_'+@TableName+'_'+@ColumnName+' 
  60. TO('+@FileGroupStr+')' 
  61. PRINT @sql + CHAR(13) 
  62.  
  63. --5.分區函數的記錄數 
  64. PRINT CHAR(13)+'--5.分區函數的記錄數' 
  65. SET @sql = 'SELECT $PARTITION.Fun_'+@TableName+'_'+@ColumnName+'('+@ColumnName+') AS Partition_num, 
  66.  MIN('+@ColumnName+'AS Min_value,MAX('+@ColumnName+'AS Max_value,COUNT(1) AS Record_num 
  67. FROM dbo.'+@TableName+' 
  68. GROUP BY $PARTITION.Fun_'+@TableName+'_'+@ColumnName+'('+@ColumnName+'
  69. ORDER BY $PARTITION.Fun_'+@TableName+'_'+@ColumnName+'('+@ColumnName+');' 
  70. PRINT @sql + CHAR(13) 

生成的腳本如下:

  1. --1.創建文件組 
  2. ALTER DATABASE [MyDataBase] 
  3. ADD FILEGROUP [FG_User_Id_01] 
  4. ALTER DATABASE [MyDataBase] 
  5. ADD FILEGROUP [FG_User_Id_02] 
  6. ALTER DATABASE [MyDataBase] 
  7. ADD FILEGROUP [FG_User_Id_03] 
  8. ALTER DATABASE [MyDataBase] 
  9. ADD FILEGROUP [FG_User_Id_04] 
  10.  
  11. --2.創建文件 
  12. ALTER DATABASE [MyDataBase] 
  13. ADD FILE 
  14. (NAME = N'FG_User_Id_01_data',FILENAME = N'E:\DataBase\FG_User_Id_01_data.ndf',SIZE = 30MB, FILEGROWTH = 10% ) 
  15. TO FILEGROUP [FG_User_Id_01]; 
  16. ALTER DATABASE [MyDataBase] 
  17. ADD FILE 
  18. (NAME = N'FG_User_Id_02_data',FILENAME = N'E:\DataBase\FG_User_Id_02_data.ndf',SIZE = 30MB, FILEGROWTH = 10% ) 
  19.  
  20. TO FILEGROUP [FG_User_Id_02]; 
  21. ALTER DATABASE [MyDataBase] 
  22. ADD FILE 
  23. (NAME = N'FG_User_Id_03_data',FILENAME = N'E:\DataBase\FG_User_Id_03_data.ndf',SIZE = 30MB, FILEGROWTH = 10% ) 
  24. TO FILEGROUP [FG_User_Id_03]; 
  25. ALTER DATABASE [MyDataBase] 
  26. ADD FILE 
  27. (NAME = N'FG_User_Id_04_data',FILENAME = N'E:\DataBase\FG_User_Id_04_data.ndf',SIZE = 30MB, FILEGROWTH = 10% ) 
  28. TO FILEGROUP [FG_User_Id_04]; 
  29.  
  30. --3.創建分區函數 
  31. CREATE PARTITION FUNCTION 
  32. Fun_User_Id(INTAS 
  33.  
  34. RANGE RIGHT 
  35. FOR VALUES(10000000,20000000,30000000) 
  36.  
  37. --4.創建分區方案 
  38. CREATE PARTITION SCHEME 
  39. Sch_User_Id AS 
  40. PARTITION Fun_User_Id 
  41. TO([FG_User_Id_01],[FG_User_Id_02],[FG_User_Id_03],[FG_User_Id_04]) 
  42.  
  43. --5.分區函數的記錄數 
  44. SELECT $PARTITION.Fun_User_Id(Id) AS Partition_num, 
  45.  MIN(Id) AS Min_value,MAX(Id) AS Max_value,COUNT(1) AS Record_num 
  46. FROM dbo.User 
  47. GROUP BY $PARTITION.Fun_User_Id(Id) 
  48. ORDER BY $PARTITION.Fun_User_Id(Id); 

三、后記

在MSND的SQL Server 2005中的分區表和索引中同樣提供了一個腳本用于生成表分區,和他不同的是:他采用了表來保存文件路徑,再使用游標來創建文件而已,其實這只能生成一部分代碼,而我的腳本不同之處就是能***限度的生成常規表分區的常用代碼,方便快捷很多。有興趣的童鞋可以去下載。

上面使用表保存信息的這種想法在后期的數據搬遷(比如需要對一個現有的表進行表分區,這種情況下通常會先建一個分區表,再進行導入現有表的數據)中是有很大的用處的,后面的文章中會講講如何進行自動化的數據搬遷,敬請留意。

原文鏈接:http://www.cnblogs.com/gaizai/archive/2011/01/14/1935579.html

【編輯推薦】

  1. SQL Server復災 你懂了嗎?
  2. SQL Server管理 這些你懂嗎?
  3. 客戶的一次疏忽,DBA的一次噩夢
  4. 單數據庫vs多數據庫,單實例vs多實例 效率測試
  5. 關于Update在不同數據庫的使用
責任編輯:艾婧 來源: 聽風吹雨餓博客
相關推薦

2009-05-31 09:25:03

SQL Server腳本數據庫管理

2010-09-13 11:09:34

SQL SERVER分

2010-11-10 14:47:11

SQL Server創

2010-09-16 15:56:15

SQL Server表

2020-06-19 12:59:33

動態腳本Java

2010-11-10 14:35:17

SQL Server創

2011-03-21 10:13:31

Sql Server數分區

2011-07-06 13:09:11

SQL Server

2013-05-20 16:09:39

SQL Server

2010-11-12 13:08:36

動態sql語句

2010-08-05 09:07:24

2010-05-13 10:00:10

SQL Server

2010-07-21 15:01:09

SQL Server

2010-06-30 16:58:24

SQL Server分

2015-07-20 17:05:38

SQL ServerNULL值

2011-07-04 14:28:18

SQL Server分區

2010-11-08 09:59:22

SQL Server動

2011-03-29 15:27:26

SQL Server 動態管理

2024-01-30 08:01:22

MySQL數據庫分組排序

2010-07-21 14:55:48

SQL Server
點贊
收藏

51CTO技術棧公眾號

免费av网址在线| 亚洲精品wwww| 亚洲欧洲精品在线| 一区二区www| 精品国产欧美日韩| 五月天久久比比资源色| 欧洲一区二区在线| 欧美亚洲天堂网| 在线观看日韩一区二区| 欧美一区二区性| 8v天堂国产在线一区二区| 一级全黄肉体裸体全过程| 日本精品久久久久| 日韩一区欧美二区| 久久国产精品久久久久| 国产chinesehd精品露脸| 美女的胸无遮挡在线观看| 亚洲国产精华液网站w| 亚洲在线第一页| 国产午夜手机精彩视频| 青青视频一区二区| 欧美三级视频在线| 黄页免费在线观看视频| 午夜小视频在线| 国产农村妇女精品一二区| 亚洲人成在线播放| 日本精品一区在线| 捆绑调教日本一区二区三区| 亚洲国产精品传媒在线观看| 91在线免费网站| 日韩 欧美 中文| 国产探花一区| 精品成人免费观看| 欧美色图另类小说| 亚洲综合伊人久久大杳蕉| 久久久久久久久久久电影| aaa级精品久久久国产片| 无码人妻丰满熟妇奶水区码| 精品白丝av| 日韩亚洲第一页| 毛片网站免费观看| 成人在线分类| 欧美性一二三区| 中国一级黄色录像| 五月香视频在线观看| 91在线国产福利| 99re视频| a级片在线视频| 久久福利视频一区二区| 国产国语刺激对白av不卡| 精品成人免费视频| 国内久久精品| 在线观看精品国产视频| 美女扒开腿免费视频| 色悠久久久久综合先锋影音下载| 色婷婷久久一区二区三区麻豆| 国产成人永久免费视频| 尤物视频在线免费观看| 欧美激情资源网| 蜜桃成人在线| 99re只有精品| 日本va欧美va瓶| 国产精品大片wwwwww| 国产免费一级视频| 亚洲制服少妇| 精品国产依人香蕉在线精品| 88久久精品无码一区二区毛片| 97久久精品| 精品日韩成人av| 国产调教打屁股xxxx网站| 国产日韩欧美中文在线| 欧美一级久久久| 日本成人在线免费| 91久久偷偷做嫩草影院电| 欧美mv和日韩mv国产网站| 麻豆传媒在线看| 亚洲欧美在线人成swag| 欧美精品一二三四| 国产资源中文字幕| 欧美黄色网络| 欧美日韩亚洲丝袜制服| 最新免费av网址| 无码小电影在线观看网站免费 | 亚洲精品午夜在线观看| 九色porny丨首页入口在线| 五月综合激情网| av免费播放网址| 亚洲精品555| 91精品国产综合久久精品麻豆 | 福利视频网站一区二区三区| 久久男人av资源站| 久久亚洲二区三区| 亚洲国产精品日韩| 亚洲卡一卡二| 日韩欧美精品在线观看| 91亚洲精品久久久蜜桃借种| 欧美.com| 亚洲天堂av在线免费观看| 国产小视频你懂的| 亚洲理论在线| 成人av电影天堂| 黄色av一区二区三区| 国产日产欧美一区| 日本aa在线观看| 欧美在线va视频| 欧美精品一区二区三区四区| 日韩精品电影一区二区三区| 欧美日韩p片| 国产精品久久91| 黄色一级a毛片| 国产精品久久久久aaaa| 欧美日韩精品在线一区二区| 香蕉久久久久久| 亚洲欧美综合v| 性色av无码久久一区二区三区| 亚洲一区视频| www国产亚洲精品| 在线观看h片| 亚洲伊人伊色伊影伊综合网| 日韩av片网站| julia中文字幕一区二区99在线| 伊人一区二区三区久久精品| 日韩av免费网址| 久久爱www久久做| 91在线播放国产| 3p在线观看| 污片在线观看一区二区 | 国产一区二区电影| 欧美高清性xxxxhd| 亚洲区欧洲区| 日韩亚洲欧美高清| 欧美图片第一页| 国产模特精品视频久久久久| 国产精品一区二区免费看| 国产盗摄一区二区三区在线| 蜜乳av另类精品一区二区| 亚洲自拍偷拍福利| yw193.com尤物在线| 色综合天天性综合| 亚洲制服丝袜在线播放| 韩日视频一区| 91日本视频在线| jzzjzzjzz亚洲成熟少妇| 福利一区视频在线观看| 中文字幕在线视频播放| 欧美福利专区| 亚洲www在线| 黄色成人在线观看| 在线电影一区二区三区| 国产精品综合激情| 青椒成人免费视频| 亚洲视频电影| 久久天天久久| 日韩中文字幕欧美| 91九色蝌蚪91por成人| 国产精品久久久爽爽爽麻豆色哟哟| 人妻丰满熟妇av无码区app| 西野翔中文久久精品字幕| 欧美大尺度在线观看| 国产农村妇女毛片精品| 欧美国产日本视频| 三级a在线观看| 91精品尤物| 91av在线不卡| 国产爆初菊在线观看免费视频网站| 色婷婷狠狠综合| 国产a√精品区二区三区四区| 亚洲国内精品| 日本精品二区| 婷婷激情成人| 久久久日本电影| 欧美欧美欧美| 51精品视频一区二区三区| 免费人成在线观看| 91在线丨porny丨国产| 大香煮伊手机一区| 欧美高清在线| 国产伦精品一区二区| 另类专区亚洲| 麻豆乱码国产一区二区三区| 天堂网在线观看视频| 在线观看欧美黄色| 欧美爱爱免费视频| 99精品国产热久久91蜜凸| 男女视频一区二区三区| 午夜精品电影| 欧美一区二区三区电影在线观看| 在线免费成人| 97av在线播放| 国产系列电影在线播放网址| 欧美老女人在线| 一区二区三区福利视频| 国产日韩欧美在线一区| 不许穿内裤随时挨c调教h苏绵| 亚洲永久字幕| 国产一级大片免费看| 色婷婷狠狠五月综合天色拍 | 国产美女一区二区| mm131午夜| 国内精品偷拍| 国产精品第10页| av在线播放资源| 亚洲视屏在线播放| 国产伦理吴梦梦伦理| 亚洲国产精品久久人人爱蜜臀| 九九热免费在线| 国产成人av电影在线| 可以免费观看av毛片| 亚洲精品2区| 日韩精品久久久免费观看| 国产精品久久久久久久久久辛辛| 91精品国产91久久久久久吃药| 国产在线视频网址| 91麻豆精品国产91久久久久久 | 天天亚洲美女在线视频| 国产人妻大战黑人20p| 毛片av中文字幕一区二区| 国产精品一色哟哟| 91中文字幕精品永久在线| 欧美成人dvd在线视频| 欧美视频二区欧美影视| 国产成人午夜视频网址| 污视频网站免费在线观看| 精品偷拍各种wc美女嘘嘘| 国产精品视频在线观看免费| 黄网站色欧美视频| 91视频青青草| 国产欧美久久久精品影院| 黄色片免费网址| 久久精品国产77777蜜臀| 国产免费黄色av| 91精品啪在线观看国产81旧版| 国产精品国产精品国产专区蜜臀ah| 欧美高清免费| 国产精品久久久av| 亚洲伊人av| 欧美极品第一页| 老司机精品影院| 亚洲天堂网站在线观看视频| 欧美一级淫片免费视频魅影视频| 欧美自拍偷拍一区| 国产又大又黄又粗| 亚洲午夜久久久| 91人妻一区二区三区蜜臀| √…a在线天堂一区| 精品人妻无码一区| 丁香另类激情小说| 九九九久久久久久久| 国产一区二区三区免费在线观看| 久久免费视频3| 欧美电影一区| 一区二区三区四区五区视频| 麻豆一区二区麻豆免费观看| 精品一区二区三区免费毛片| 成人h动漫精品一区二区器材| 91亚洲国产成人久久精品网站| 成人开心激情| 国产精品久久久一区| 高清成人在线| 成人在线观看视频网站| 日本电影久久久| 国产suv精品一区二区| 91成人在线| 国产免费久久av| 韩日精品一区| 欧美尤物巨大精品爽| 快播电影网址老女人久久| 国产精品av在线| 欧美成人精品三级网站| 91欧美激情另类亚洲| 先锋影音网一区二区| 91香蕉亚洲精品| 欧美不卡在线观看| 91精品国产高清久久久久久91裸体| 国产午夜久久av| 99国产在线| 任你弄精品视频免费观看| 国产精品亚洲一区| 小嫩嫩12欧美| 日韩高清专区| 国产精品97| 成人黄色大片网站| 亚洲免费婷婷| 欧美日韩一区二区三区69堂| 国产99久久久国产精品潘金| 波多野结衣加勒比| 99国产精品久久久久| 欧美图片一区二区| 一区二区在线观看视频| 国产精久久久久久| 日本久久电影网| 亚洲欧美另类日韩| 亚洲欧美另类人妖| 老司机免费在线视频| 91精品国产高清久久久久久久久| 美女网站视频一区| 亚洲自拍偷拍在线| 六月丁香久久丫| 亚洲精品中字| 激情另类综合| 国产在线青青草| 久久福利资源站| 国模私拍在线观看| 中文字幕欧美区| 久青草免费视频| 色哟哟一区二区三区| www.五月婷婷| 亚洲欧洲免费视频| 亚洲www色| 国产欧美一区二区三区在线看| 一区二区三区四区高清视频| 欧美日韩电影一区二区| 黄色成人精品网站| 污片在线免费看| 97久久超碰精品国产| 青青草原免费观看| 欧美视频一区二区三区在线观看 | 日韩精品一级二级| 精品国产一二区| 欧美国产精品一区二区三区| 啦啦啦免费高清视频在线观看| 欧美日韩一区二区三区在线看| 女人18毛片一区二区三区| 在线播放精品一区二区三区| 女囚岛在线观看| 国产精品主播视频| 深夜福利一区| 中国一级黄色录像| 男人的天堂成人在线| 992kp免费看片| 国产精品成人免费在线| 日韩精品在线观看免费| 欧美体内she精视频| 成人在线观看免费| 91成人免费观看网站| 国产精品一区二区三区四区在线观看| 奇米影视首页 狠狠色丁香婷婷久久综合| 欧美日韩亚洲一区二区三区在线| 玩弄中年熟妇正在播放| 成人黄页毛片网站| 卡通动漫亚洲综合| 欧美精品在线一区二区| 69av在线| 国产精品一区二区久久久| 老司机精品在线| 男人揉女人奶房视频60分| av在线播放一区二区三区| 久久无码精品丰满人妻| 欧美三级在线看| 91porn在线观看| 国产免费一区二区三区香蕉精| 久久久久久久久久久9不雅视频| wwwwxxxx日韩| 91色视频在线| 欧美性猛交bbbbb精品| 欧美一区二区三区免费视频 | 99久久国产综合精品五月天喷水| 国产精品白丝av| 国产3级在线观看| 色哟哟在线观看一区二区三区| 亚洲日本香蕉视频| 国产91精品不卡视频| 综合伊思人在钱三区| 久久精品一区二| 国产午夜精品久久久久久免费视 | 色综合一区二区| 免费a级毛片在线观看| 国产精品久久久久久中文字| 日韩www.| 污网站在线免费| 亚洲午夜免费福利视频| 日韩中文字幕免费观看| 韩国三级电影久久久久久| 婷婷成人影院| 国产超碰在线播放| 国产精品三级视频| a毛片在线免费观看| 国内偷自视频区视频综合| 91精品尤物| caoporn超碰97| 亚洲图片你懂的| 波多野结衣家庭主妇| 中文字幕日韩视频| 精品一区二区三区视频在线播放| 男同互操gay射视频在线看| 成人福利视频在线看| 日韩欧美三级视频| 亚洲人成网在线播放| 国产精品99精品一区二区三区∴| 欧美日韩亚洲免费| 国产乱色国产精品免费视频| 日本熟妇一区二区| 国产一区二区日韩精品欧美精品| 精品麻豆剧传媒av国产九九九| 大地资源网在线观看免费官网| 国产精品系列在线观看| 天堂免费在线视频| 久久精品中文字幕电影| 午夜久久av| 亚洲综合色在线观看|