数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQLServer的几种数据传输方法


发布日期:2019年05月15日
 
SQLServer的几种数据传输方法

本篇文章讨论的是有关数据库之间数据传送的问题在实际的应用领域里都可以用到具有实用价值

例如公司目前数据库中的信息量不够需要第三方的数据支持

这事就有几种情况了

对方直接提供数据库帐号你可以直接访问(可能性很小)

对方把数据库的信息自动转换成mdb;dbf;TXT等格式的文件然后传到你的服务器上

通过一个数据库接口程序直接插到你的数据库中

这里还有个问题无论对方提供的数据的结构是否和我们自己的一样都不能直接插到我们的库中这样一旦有问题会破坏我们的数据库那么我们怎么办呢?

下面的文档会有很好的答案

具体示例

本篇文章讨论的是有关数据库之间数据传送的问题在实际的应用领域里都可以用到具有实用价值

例如公司目前数据库中的信息量不够需要第三方的数据支持

这事就有几种情况了

对方直接提供数据库帐号你可以直接访问(可能性很小)

对方把数据库的信息自动转换成mdb;dbf;TXT等格式的文件然后传到你的服务器上

通过一个数据库接口程序直接插到你的数据库中

这里还有个问题无论对方提供的数据的结构是否和我们自己的一样都不能直接插到我们的库中这样一旦有问题会破坏我们的数据库那么我们怎么办呢?

下面的文档会有很好的答案

具体示例

本篇文章讨论的是有关数据库之间数据传送的问题在实际的应用领域里都可以用到具有实用价值

例如公司目前数据库中的信息量不够需要第三方的数据支持

这事就有几种情况了

对方直接提供数据库帐号你可以直接访问(可能性很小)

对方把数据库的信息自动转换成mdb;dbf;TXT等格式的文件然后传到你的服务器上

通过一个数据库接口程序直接插到你的数据库中

这里还有个问题无论对方提供的数据的结构是否和我们自己的一样都不能直接插到我们的库中这样一旦有问题会破坏我们的数据库那么我们怎么办呢?

下面的文档会有很好的答案

数据库间的 COPY 导入导出等

利用数据库自带的向导进行数据库之间的传递

好处可以在不同的数据库接口间传递数据

缺点传递数据的过程中不能对数据进行更改

技巧可以利用任务(JOB)定时取需要的数据

利用脚本和任务(JOB)更改处理数据

编写相关的数据库脚本然后在任务(JOB)中运行

好处可以更改插入的内容和插入的位置使用灵活

缺点要自己手写代码

技巧可以配合导入导出利用任务(JOB)实现强大的功能

具体示例

用途把其它数据库服务器中的数据(mdb;dbf;sqlserver 等)定时导入自己的数据库中使用有个问题是因为我们自己的数据库已经在使用并且结构和要导入的数据库大不相同而且原数据库中的某些内容要调整所以我们利用了中间数据库如图

具体的脚本程序

/*用途把第三方提供的数据信息时时导入我们自己的数据库中

步骤用 DTS (导入导出向导)把数据导入到中间数据库中要设置任务定时导入编写下面的脚本然后把它加在 DTS 任务的后一步即运行完 DTS后在运行此脚本 */

declare @comid int@comtitle nvarchar() 定义变量

declare test cursor for 定义游标

select DISTINCT comidcomtitle from society where

datediff(daycomdategetdate()) < 1

open test--打开游标

fetch next from test into @comid,@comtitle

while @@fetch_status = 0 --循环取数据

begin

declare @titletemp nvarchar(255)

declare test1 cursor for

select comtitle from dbB.dbo.tb_infogegu where comtitle=@comtitle and datediff(day,comdate,getdate()) = 0

open test1

fetch next from test1 into @titletemp

if( @@fetch_status = 0) --表中该记录已经存在,删除该记录

DELETE FROM society WHERE comid=@comid

Else --不存在时,插入该记录

begin

insert into dbB.dbo.tb_infogegu (comtitle,comcontent,comchannel,comdate,tradetype,stockcode, fromdate)

select top 1 comtitle,comcontent,comchannel,comdate,tradetype,stockcode, fromdate from society where comid=@comid order

by comdate

DELETE FROM society WHERE comid=@comid

end

close test1

deallocate test1

fetch next from test into @comid,@comtitle

end

DELETE FROM society

close test

deallocate test

GO

上一篇:跟我学SQL:串行数据类型

下一篇:关于SQL Server事务日志的问题汇总