日時値の一部に基づいて (毎月のアーカイブとして) 1000 のチャンクの大きなテーブルから別のテーブルに行を移動する方法を探しています。MS SQL Server 2008 を使用しています。
Remus Rusanu は、stackoverflow で次のソリューションを提供しました。SQL Server データを制限された (1000 行) チャンクで移動し、行をチャンクで移動します。魅力のように機能します:-)
WHILE 1=1
BEGIN
WITH messages AS (
SELECT TOP 1000 id, messageDatetime, message
FROM DemoData)
DELETE messages
OUTPUT DELETED.id, messageDatetime, message
INTO messageArchive;
IF (@@ROWCOUNT = 0)
BREAK;
END
私が今必要としているのは、messageDate の月の部分に応じて行を別のテーブルに移動する機能です。
- 9 月からのメッセージは、messageArchive_09 という名前のテーブルに挿入する必要があります。
- 10 月からのメッセージは、messageArchive_10 という名前のテーブルに挿入する必要があります
- ...
何か案は?