首 页中国梦想方达科技Loveshine'Blog绿区文章绿区下载绿区图像客户留言绿区论坛繁體中文
设为首页
加入收藏
联系我们
您当前的位置:绿色生活社区 -> 数 据 库 -> Mysql -> 文章内容 退出登录 用户管理
栏目导航
· Access · Mysql
· Mssql · Oracle
热门文章
· [组图] 网页导航条素..
· QQ空间相册密码破解..
· 【推荐收藏】【MSDN..
· WIN2003产品密钥
· 越狱全集高速下载
· 新东方在线 4+1 网络..
· 空间代码----最新去..
· 用于格式化后硬盘数..
· 新东方在线 4+1 网络..
· 新东方在线 4+1 网络..
相关文章
· MySQL服务器的启动和..
· MYSQL基本数据库术语..
· Mysql对文件操作的封..
· php与mysql三日通
· 谈谈数据从sql serv..
· 使用GeoIP和PHP构建..
· WinMySQLadmin 1.1以..
· MYSQL调度与锁定问题..
· MySQL的几点用法
· SQL导出到MYSQL的简..
SQL批量数据上传
作者:本站  来源:本站整理  发布时间:2007-1-13 17:00:23  发布人:loveshine

减小字体 增大字体

批量数据上传(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='alter table '+@n_dbname+'..['+@tbname+'] NOCHECK CONSTRAINT ['+@name+']'
 exec(@sql)
 fetch next from #tbc into @name,@tbname
end
close #tbc
完成后恢复约束
open #tbc
fetch next from #tbc into @name,@tbname
while @@fetch_status=0
begin
 set @sql='alter table '+@n_dbname+'..['+@tbname+'] CHECK CONSTRAINT ['+@name+']'
 exec(@sql)
 fetch next from #tbc into @name,@tbname
end
close #tbc
deallocate #tbc

二. 怎样判断表中的数据是否上传。设计表时不可能对每个表加上一个字段来标识是否已上传,只要对主表加个字段标识是否上传,然后通过游标,由关系找出主表下每个表的相关记录,依次上传。不过这样速度会降低,没办法的事拉~~~

三. 由于数据加工中为了方便输入,对很多表都是以自动编号来标识的。上传后,很多主表的主键必发生相应的改变,这就要求子表的外键值必须发生改变与之对应。
   基本思路:先上传主表,然后将子表中的相关记录提出放在临时表中,更新外键,再将临时表上传。(对复杂关系,需对主表建立一个新旧id对应表)
   只能借用临时表来更新,如果直接在子表更新,会同时把已经上传的数据更新。

[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 绿区社区
Copyright © 2002-2006 1Lives.Com. All Rights Reserved .
冀ICP备06009849号