存储过程如何实现两个数据库(SQL)表的对拷?(39分)

  • 主题发起人 主题发起人 ywj1997
  • 开始时间 开始时间
Y

ywj1997

Unregistered / Unconfirmed
GUEST, unregistred user!
在sql里有两个数据库conn和conn1,这两个数据库里的表的表名,表结构都是一样的,我现在要把conn里的表(sysInfo)中的记录拷到数据库conn1中的表(sysInfo)里去,如何实现?<br>两个关键点:<br>1.两个数据库表记录的对拷<br>2.判断目标表,看某一记录是否已存在,存在则跳过,不用再拷,记录是否重复的识别字段 <br>&nbsp; 是FID.(可以用游标)
 
试试<br>select * from conn.sysInfo<br>into conn1.sysInfo<br>where conn.sysInfo.FID&lt;&gt;FID
 
insert into conn1.sysInfo (select * conn.sysInfo where conn.sysInfo.FID not in (select FID from conn1.sysInfo))
 
To:可视化<br>这种方式不能实现。<br>To:DIGUA<br>这种方法可以实现,但是数据量大的话会很慢。<br><br>在存储过程中用游标是一个方法,但觉得用游标数据量大的话,速度也不理想。<br>希望有好的解决方案告知一下
 
drop table conn1.dbo.sysInfo<br>go<br>select * into conn1.dbo.sysInfo<br>from conn.dbo.sysInfo
 
不同意楼上<br>楼主是要把conn里的表(sysInfo)中的记录拷到数据库conn1中的表(sysInfo)里去<br>判断目标表,看某一记录是否已存在,存在则跳过,不用再拷<br>这样的情况下,肯定是要保留目的表的,而且目的表的数据比源表肯定是要等于或多的<br>你直接把目的表删了,有什么用<br>而且楼上忽略一点,表已经被你drop了, &nbsp;你再 select into 哪儿?
 
而且楼上忽略一点,表已经被你drop了, &nbsp;你再 select into 哪儿? &nbsp;<br>-----------------------------------------------------<br>什么意思阿? &nbsp;先看看SQL语法再发表意见吧!
 
大数据量复制数据用DTS最快了。
 
這個沒什麼難度的啦,你只要將要對拷的表前面加上數據庫的前綴,想怎麼操作都行啊
 
關於速度問題,還是使用手工的,用DTS來對操作比較好
 
關於速度問題,還是使用手工的,用DTS來對操作比較好 &nbsp;<br>-----------------------<br>程序也可以用DTS阿,查查资料,VB的代码,改一下就成DELPHI的了。
 
来自:李翔鹏, 时间:2008-4-29 13:11:19, ID:3889817<br>而且楼上忽略一点,表已经被你drop了, &nbsp;你再 select into 哪儿? &nbsp;<br>-----------------------------------------------------<br>什么意思阿? &nbsp;先看看SQL语法再发表意见吧! &nbsp;<br><br>不解兄台意思,我不是什么高手,但是有一点还是明白的<br>drop table conn1.dbo.sysInfo<br>go<br>到这 conn1.dbo.sysInfo这个表已经不存在了<br><br>不明白下面的这个如何执行<br>select * into conn1.dbo.sysInfo<br>from conn.dbo.sysInfo<br><br>望指点
 
楼上请看:<br>------------------------<br>使用 SELECT INTO 插入行<br>SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择列表中表达式的特性定义,例如:<br><br>SELECT Shippers.*, Link.Address, Link.City,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Link.Region, Link.PostalCode<br>INTO NewShippers<br>FROM Shippers<br>&nbsp; &nbsp; &nbsp;JOIN LinkServer.DB.dbo.Shippers AS Link<br>&nbsp; &nbsp; &nbsp; &nbsp;ON (Shippers.ShipperID = Link.ShipperID)<br><br>SELECT INTO 可将几个表或视图中的数据组合成一个表。也可用于创建一个包含选自链接服务器的数据的新表。<br><br><br>请参见<br><br>SELECT<br><br>&amp;copy;1988-2000 Microsoft Corporation。保留所有权利。
 
又学习到新知识了,谢谢指教
 
后退
顶部