批量数据上传(access到sql server。sql server到sql server)
一个服务系统,一般都有两个平台(服务平台,数据加工平台)。数据加工可以单机或者联机操作。这中间涉及到了两个数据整合上传问题。一是定期将单机的数据上传到数据加工平台。二是定期将数据加工平台的数据上传到服务器上。整个上传过程涉及到了两个核心过程:(1):怎样判断该数据是否上传(2) 主表上传后,如果主表主键发生改变,怎样让子表的外键也相应的改变。
本文中数据加工以access数据库为基础的,包括单机版,网络版(通过odbc连在sql1上)。服务平台建在sql2上。程序由存储过程完成。用OPENROWSET来调用access。以下简单谈下我对这两个核心问题的解决思路。
一. 上传前,如果对表建立了关系,必须先禁用约束。
set @sql=’declare #tbc cursor for select name,tbname=object_name(parent_obj)
from
‘+@n_dbname+’..sysobjects
where xtype in(”C”,”F”)’
exec(@sql)
declare @name sysname,@tbname sysname
open #tbc
fetch next from #tbc into @name,@tbname
while @@fetch_status=0
begin
set @sql=