代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
SQLQ分区表
作者:
Dezai.CN
/ 发布于
2012/2/15
/
588
SQLQ分区表
<div><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">=========================================</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> 转换为分区表</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);">=========================================</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> 1. 创建分区函数</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 适用于存储历史存档记录的分区表的分区函数</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">DECLARE</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20020101</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_HistoryArchive(</span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 255);">AS</span><span style="color: rgb(0, 0, 0);"> RANGE </span><span style="color: rgb(128, 128, 128);">RIGHT</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">FOR</span><span style="color: rgb(0, 0, 255);">VALUES</span><span style="color: rgb(0, 0, 0);">( </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Year</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">)) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 适用于存储历史记录的分区表的分区函数</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);">DECLARE @dt datetime</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20000101</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_History(</span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 255);">AS</span><span style="color: rgb(0, 0, 0);"> RANGE </span><span style="color: rgb(128, 128, 128);">RIGHT</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">FOR</span><span style="color: rgb(0, 0, 255);">VALUES</span><span style="color: rgb(0, 0, 0);">( </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">3</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">4</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">5</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">6</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">7</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">8</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">9</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">10</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">11</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">), </span><span style="color: rgb(255, 0, 255);">DATEADD</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 255);">Month</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0); font-weight: bold;">12</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">)) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 2. 创建分区架构</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 适用于存储历史存档记录的分区表的分区架构</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);"> PARTITION SCHEME PS_HistoryArchive </span><span style="color: rgb(0, 0, 255);">AS</span><span style="color: rgb(0, 0, 0);"> PARTITION PF_HistoryArchive </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 适用于存储历史记录的分区表的分区架构</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 0);"> PARTITION SCHEME PS_History </span><span style="color: rgb(0, 0, 255);">AS</span><span style="color: rgb(0, 0, 0);"> PARTITION PF_History </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 3. 删除索引</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 删除存储历史存档记录的表中的索引</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">DROP</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive.IX_TransactionHistoryArchive_ProductID </span><span style="color: rgb(0, 0, 255);">DROP</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive.IX_TransactionHistoryArchive_ReferenceOrderID_ReferenceOrderLineID </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 删除存储历史记录的表中的索引</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">DROP</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory.IX_TransactionHistory_ProductID </span><span style="color: rgb(0, 0, 255);">DROP</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory.IX_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 4. 转换为分区表</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 将存储历史存档记录的表转换为分区表</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive </span><span style="color: rgb(0, 0, 255);">DROP</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);"> PK_TransactionHistoryArchive_TransactionID </span><span style="color: rgb(0, 0, 255);">WITH</span><span style="color: rgb(0, 0, 0);">( MOVE </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);"> PS_HistoryArchive(TransactionDate)) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b.将存储历史记录的表转换为分区表</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory </span><span style="color: rgb(0, 0, 255);">DROP</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);"> PK_TransactionHistory_TransactionID </span><span style="color: rgb(0, 0, 255);">WITH</span><span style="color: rgb(0, 0, 0);">( MOVE </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);"> PS_History(TransactionDate)) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 5. 恢复主键</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 恢复存储历史存档记录的分区表的主键</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive </span><span style="color: rgb(0, 0, 255);">ADD</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);"> PK_TransactionHistoryArchive_TransactionID </span><span style="color: rgb(0, 0, 255);">PRIMARY</span><span style="color: rgb(0, 0, 255);">KEY</span><span style="color: rgb(0, 0, 255);">CLUSTERED</span><span style="color: rgb(0, 0, 0);">( TransactionID, TransactionDate) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 恢复存储历史记录的分区表的主键</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory </span><span style="color: rgb(0, 0, 255);">ADD</span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);"> PK_TransactionHistory_TransactionID </span><span style="color: rgb(0, 0, 255);">PRIMARY</span><span style="color: rgb(0, 0, 255);">KEY</span><span style="color: rgb(0, 0, 255);">CLUSTERED</span><span style="color: rgb(0, 0, 0);">( TransactionID, TransactionDate) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 6. 恢复索引</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 恢复存储历史存档记录的分区表的索引</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> IX_TransactionHistoryArchive_ProductID </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive( ProductID) </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> IX_TransactionHistoryArchive_ReferenceOrderID_ReferenceOrderLineID </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive( ReferenceOrderID, ReferenceOrderLineID) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 恢复存储历史记录的分区表的索引</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> IX_TransactionHistory_ProductID </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory( ProductID) </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 255);">INDEX</span><span style="color: rgb(0, 0, 0);"> IX_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory( ReferenceOrderID, ReferenceOrderLineID) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 7. 查看分区表的相关信息</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">SELECT</span><span style="color: rgb(0, 0, 0);"> SchemaName </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> S.name, TableName </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> TB.name, PartitionScheme </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> PS.name, PartitionFunction </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> PF.name, PartitionFunctionRangeType </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 255);">CASE</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">WHEN</span><span style="color: rgb(0, 0, 0);"> boundary_value_on_right </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(128, 0, 0); font-weight: bold;">0</span><span style="color: rgb(0, 0, 255);">THEN</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">LEFT</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ELSE</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">RIGHT</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 255);">END</span><span style="color: rgb(0, 0, 0);">, PartitionFunctionFanout </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> PF.fanout, SchemaID </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> S.schema_id, ObjectID </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> TB.</span><span style="color: rgb(255, 0, 255);">object_id</span><span style="color: rgb(0, 0, 0);">, PartitionSchemeID </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> PS.data_space_id, PartitionFunctionID </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> PS.function_id </span><span style="color: rgb(0, 0, 255);">FROM</span><span style="color: rgb(0, 0, 0);"> sys.schemas S </span><span style="color: rgb(0, 0, 255);">INNER</span><span style="color: rgb(128, 128, 128);">JOIN</span><span style="color: rgb(0, 0, 0);"> sys.tables TB </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> S.schema_id </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> TB.schema_id </span><span style="color: rgb(0, 0, 255);">INNER</span><span style="color: rgb(128, 128, 128);">JOIN</span><span style="color: rgb(0, 0, 0);"> sys.indexes IDX </span><span style="color: rgb(0, 0, 255);">on</span><span style="color: rgb(0, 0, 0);"> TB.</span><span style="color: rgb(255, 0, 255);">object_id</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> IDX.</span><span style="color: rgb(255, 0, 255);">object_id</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">AND</span><span style="color: rgb(0, 0, 0);"> IDX.index_id </span><span style="color: rgb(128, 128, 128);"><</span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">INNER</span><span style="color: rgb(128, 128, 128);">JOIN</span><span style="color: rgb(0, 0, 0);"> sys.partition_schemes PS </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> PS.data_space_id </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> IDX.data_space_id </span><span style="color: rgb(0, 0, 255);">INNER</span><span style="color: rgb(128, 128, 128);">JOIN</span><span style="color: rgb(0, 0, 0);"> sys.partition_functions PF </span><span style="color: rgb(0, 0, 255);">ON</span><span style="color: rgb(0, 0, 0);"> PS.function_id </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> PF.function_id </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">=========================================</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> 移动分区表数据</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);">=========================================</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> 1. 为存储历史存档记录的分区表增加分区, 并接受从历史记录分区表移动过来的数据</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 修改分区架构, 增加用以接受新分区的文件组</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION SCHEME PS_HistoryArchive </span><span style="color: rgb(0, 0, 255);">NEXT</span><span style="color: rgb(0, 0, 0);"> USED </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 修改分区函数, 增加分区用以接受从历史记录分区表移动过来的数据</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">DECLARE</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20030901</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_HistoryArchive() SPLIT RANGE(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> c. 将历史记录表中的过期数据移动到历史存档记录表中</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistory SWITCH PARTITION </span><span style="color: rgb(128, 0, 0); font-weight: bold;">2</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive PARTITION $PARTITION.PF_HistoryArchive(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> d. 将接受到的数据与原来的分区合并</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_HistoryArchive() MERGE RANGE(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 2. 将存储历史记录的分区表中不包含数据的分区删除, 并增加新的分区以接受新数据</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> a. 合并不包含数据的分区</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">DECLARE</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20030901</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_History() MERGE RANGE(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> b. 修改分区架构, 增加用以接受新分区的文件组</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION SCHEME PS_History </span><span style="color: rgb(0, 0, 255);">NEXT</span><span style="color: rgb(0, 0, 0);"> USED </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> c. 修改分区函数, 增加分区用以接受新数据</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20041001</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_History() SPLIT RANGE(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 255);">GO</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);">=========================================</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> 清除历史存档记录中的过期数据</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);">=========================================</span><span style="color: rgb(0, 128, 128);"> --</span><span style="color: rgb(0, 128, 128);"> 1. 创建用于保存过期的历史存档数据的表</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">CREATE</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive_2001_temp( TransactionID </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">, ProductID </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">, ReferenceOrderID </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">, ReferenceOrderLineID </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">DEFAULT</span><span style="color: rgb(0, 0, 0);"> ((</span><span style="color: rgb(128, 0, 0); font-weight: bold;">0</span><span style="color: rgb(0, 0, 0);">)), TransactionDate </span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">DEFAULT</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(255, 0, 255);">GETDATE</span><span style="color: rgb(0, 0, 0);">()), TransactionType </span><span style="color: rgb(0, 0, 255);">nchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">, Quantity </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">, ActualCost </span><span style="color: rgb(0, 0, 255);">money</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);">, ModifiedDate </span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(128, 128, 128);">NOT</span><span style="color: rgb(0, 0, 255);">NULL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">DEFAULT</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(255, 0, 255);">GETDATE</span><span style="color: rgb(0, 0, 0);">()), </span><span style="color: rgb(0, 0, 255);">CONSTRAINT</span><span style="color: rgb(0, 0, 0);"> PK_TransactionHistoryArchive_2001_temp_TransactionID </span><span style="color: rgb(0, 0, 255);">PRIMARY</span><span style="color: rgb(0, 0, 255);">KEY</span><span style="color: rgb(0, 0, 255);">CLUSTERED</span><span style="color: rgb(0, 0, 0);">( TransactionID, TransactionDate) ) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 2. 将数据从历史存档记录分区表移动到第步创建的表中</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 255);">TABLE</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive SWITCH PARTITION </span><span style="color: rgb(128, 0, 0); font-weight: bold;">1</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">TO</span><span style="color: rgb(0, 0, 0);"> Production.TransactionHistoryArchive_2001_temp </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 3. 删除不再包含数据的分区</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">DECLARE</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 255);">datetime</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20020101</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_HistoryArchive() MERGE RANGE(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 4. 修改分区架构, 增加用以接受新分区的文件组</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION SCHEME PS_HistoryArchive </span><span style="color: rgb(0, 0, 255);">NEXT</span><span style="color: rgb(0, 0, 0);"> USED </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">PRIMARY</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 5. 修改分区函数, 增加分区用以接受新数据</span><span style="color: rgb(0, 128, 128);"> </span><span style="color: rgb(0, 0, 255);">SET</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">20040101</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> PARTITION </span><span style="color: rgb(0, 0, 255);">FUNCTION</span><span style="color: rgb(0, 0, 0);"> PF_HistoryArchive() SPLIT RANGE(</span><span style="color: rgb(0, 128, 0);">@dt</span><span style="color: rgb(0, 0, 0);">)</span></div>
试试其它关键字
SQLQ分区表
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3