DTS如何实现一个数据库表某天以前数据导入另一个数据库的表,并且原表数据同步删除

QDZZQ 2004-05-11 09:57:41
DTS如何实现一个数据库表某天以前数据导入另一个数据库的表,并且原表数据同步删除
...全文
131 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
QDZZQ 2004-05-11
  • 打赏
  • 举报
回复
某天是指需要执行的“今天”前90天
QDZZQ 2004-05-11
  • 打赏
  • 举报
回复
我是每隔3个月自动导数据
QDZZQ 2004-05-11
  • 打赏
  • 举报
回复
作业怎么实现?在数据库两台机器?该怎样在一个脚本中访问两台机器两个数据库的表?
zjcxc 2004-05-11
  • 打赏
  • 举报
回复
--不对,你是直接导,不需要定时,直接在查询分析器中用一个SQL语句就行了

set xact_abort on
begin tran --因为要两步处理,用事务保证处理的完整性

--导入数据到另一个库的表中
insert 另一库..表 select * from 一个库..表
where datediff(day,时间字段,getdate())>2 --处理2天前的,不包括2天

--删除已经处理了的数据
delete from 一个库..表
where datediff(day,时间字段,getdate())>2 --处理2天前的,不包括2天

commit tran
zjcxc 2004-05-11
  • 打赏
  • 举报
回复
DTS不熟,不过用作业也可以实现你的要求.
QDZZQ 2004-05-11
  • 打赏
  • 举报
回复
111
zjcxc 2004-05-11
  • 打赏
  • 举报
回复
--访问不同电脑上的数据库(远程只要联好网就一样)

--如果经常访问或数据量大,建议用链接服务器

--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名

go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'


--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)


--导入示例
select * into 表 from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
zjcxc 2004-05-11
  • 打赏
  • 举报
回复
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排


然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧