我正在寻找一种解决方案,如何根据日期时间值的一部分(作为每月存档)将行从 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 的表中
- ...
有任何想法吗?