Sqlserver快速删除特定分区数据的方法

在sqlserver中的partition並沒有可以直接使用truncate的動作
但有下面的方式是可以做到truncate的動作

使用$PARTITION找出要parttion no

DECLARE @PARTITION_DEL_NO NVARCHAR(4)
–找出parttion 2009/01/01這區塊的parttion no
SELECT @PARTITION_DEL_NO=$PARTITION.test_DT_FN(’2009/01/01′)
select @PARTITION_DEL_NO

–做parttion搬移動作
ALTER TABLE test SWITCH PARTITION ‘+@PARTITION_DEL_NO+’ TO dbo.Old_test
此段是將test的parttion 2區塊直接指定給Old_test的parttion
資料是瞬間過去因為他是指標指過去給Old_test所以根本就沒有做資料匯出匯入
這樣就等於做了truncate的動作一樣,資料到Old_test後在做truncate table Old_test這樣就ok了

要注意的事,Old_test的table欄位要跟test一模一樣這樣才能搬且在搬時Old_test不能有資料所以要先對Old_test做truncate再搬

大家可以參考一下

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>