SQL200864bit历史数据迁移到SQL2000

来源:这里教程网 时间:2026-03-02 10:34:27 作者:
目标:迁移表CTICallRecord半年以外的数据到历史库

SQL2008 172.17.23.34 迁移到 172.17.1.49 使用工具linkserver
1.建立linkserver
EXEC  sp_addlinkedserver
@server='linkip49',  --随意命名linkserver
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='172.17.1.49' --要连接的服务器地址
2.建立linklogin
EXEC  sp_addlinkedsrvlogin 'linkip49','false',NULL,'dbmanager','elitel'
Note:dbmanager 登陆名 elitel 密码 dbmanager最好拥有最大权限

查询linkserver
select * from sys.linked_logins
select * from sys.servers

删除linkserver
Exec sp_droplinkedsrvlogin 'linkip49',null
Exec sp_dropserver linkip49

2.编写脚本
create procedure proc_transfer_history_data
@var_months  int, --要迁移多少个月以外的数据
@var_linkname varchar(10) --linkserver 名字
as
declare
@transer_sql  varchar(200),
@delete_sql   varchar(200)
begin
set @transer_sql ='INSERT INTO '+@var_linkname+'.EliteUCbackup.dbo.CTICallRecord '
+'SELECT * FROM CTICallRecord WHERE callTime < DATEADD(MM,-'+cast(@var_months as varchar(8))
+',CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),112),112))';
--transfer histotry data
exec (@transer_sql);

set @delete_sql='DELETE FROM CTICallRecord WHERE callTime < DATEADD(MM,-'+cast(@var_months as varchar(8))
+',CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),112),112))';
--delete history data
exec(@delete_sql);
end

中间遇到一个问题;
2008 server 不能建立连接2000的数据库必须打补丁sp4
执行脚本 SQL2kSP4/install/instcat.sql 脚本
执行脚本方法
打开查询分析器--工具(工具栏)--查询分析器--文件夹打开标志(工具栏)--打开文件--执行
完成
SQL2008 <wbr>64 <wbr>bit <wbr>历史数据迁移到 <wbr>SQL <wbr>2000
<!-- 正文结束 -->

相关推荐