CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

这个SQL语句怎么写?请高手指点!很简单!

楼主delphivszjh()2004-12-02 21:35:29 在 Delphi / 数据库相关 提问

现在有两个服务器A和B,都有相同的表T,现在要将服务器A中T表的数据,用SQL语句全部增加到服务器B中的T表中去,用一条SQL语句,可否实现?请大家帮忙! 问题点数:0、回复次数:15Top

1 楼tmanje(大树)回复于 2004-12-02 21:39:13 得分 0

关注.Top

2 楼boby_v(泪如雨下)回复于 2004-12-02 21:40:45 得分 0

是什么数据库啊,SQL   server还是ORACLE   ?都可以实现的Top

3 楼delphivszjh()回复于 2004-12-02 21:54:01 得分 0

是sql   数据库Top

4 楼XuDunYu(西门吹雪)回复于 2004-12-02 23:24:34 得分 0

insert   into   B.dbo.T   from   A.dbo.T   搞定Top

5 楼whythinkwhy(小生)回复于 2004-12-03 08:57:46 得分 0

如果表结构相同则  
  insert   into   B.dbo.T   select   *   from   A.dbo.T  
  如果不相同则  
  insert   into   B.dbo.T(字段1,字段2......)   select   字段1,字段2,.....   from   A.dbo.T  
  Top

6 楼qizhanfeng(glacier)回复于 2004-12-03 09:03:50 得分 0

adoconnection1连接A  
  adoquery1连接adoconnection1  
  adoquery1执行下面的sql  
   
  insert   into   T   select       *  
  FROM             OPENDATASOURCE(  
                    'SQLOLEDB',  
                    'Data   Source=B;User   ID=sa;Password=B的密码'  
                    ).B的库.dbo.T  
   
   
  指定B的密码,B的库名  
   
  Top

7 楼yuvotesyg518(青出于蓝)回复于 2004-12-03 09:34:52 得分 0

看一下这篇文章,对你有帮助的。  
   
        I   have   two   MS   SQL   Servers   2000   on   two   machines.   Is   there   a   way   I   can   create   a   view   table   in   ServerA,   which   would   look   at   ServerB,   using   a   ServerA   user,   who   does   not   exists   in   ServerB.      
     
        Ok,   lets   go   step   by   step.   We're   going   to   use   Transact   SQL   language   to   do   this,   so   go   to   the   Query   Analyzer   and   login   to   the   Local   Server   (ServerA).    
   
  First   Link   the   ServerB   to   ServerA:  
   
  sp_addlinkedserver   'ServerB',   'SQL   Server'  
   
  Then   establish   the   user   that   we'll   use   to   connect   from   ServerA   to   ServerB.   For   that   task   we'll   use   a   valid   account   in   ServerA   (with   the   appropriate   permissions)   and   map   it   to   a   valid   account   in   ServerB.   That   account   must   have   permission   to   access   the   source   table   for   the   view   in   ServerA:  
   
  sp_addlinkedsrvlogin  
  @rmtsrvname   =   'ServerB',  
  @useself   =   'false',  
  @locallogin   =   'YourLocalUserFromA',  
  @rmtuser   =   'YourRemoteUserFromB',  
  @rmtpassword   =   'PasswordOf_rmtuser'  
   
  Login   to   ServerA   with   the   account   that   we   mapped   to   ServerB   and   create   the   view:  
   
  CREATE   VIEW   dbo.MyView  
  AS  
  SELECT   Field1,   Field2,   FieldN  
  FROM   ServerB.RemoteDB.dbo.RemoteTable  
  GO  
   
  Start   using   it,   and   good   luck:  
   
  SELECT   *   FROM   MyView  
  Top

8 楼Tensionli()回复于 2004-12-03 10:54:11 得分 0

转贴:  
   
  在我们做数据库程序开发的时候,经常会遇到这种情况:需要将一个数据库服务器中的数据导入到另一个  
  数据库服务器的表中。通常我们会使用这种方法:先把一个数据库中的数据取出来放到某出,然后再把这  
  些数据一条条插入到目的数据库中,这种方法效率较低,写起程序来也很繁琐,容易出错。另外一种方法  
  是使用bcp或BULK   INSERT语句,将数据导入到一个文件中,再从此文件中导出到目的数据库,这种方法虽  
  然效率稍高,但也有很多不如意的地方,单是在导入时怎样找到另外一台机器上的数据导入文件就很麻烦。  
  最方便的一种方法,我想也是效率最高的方法,应该是这样:  
  比如有两个数据库服务器:zl和ljw,里面都有一个数据库taxitemp(也可以不同名),数据库里有一个表,  
  叫users,我们现在想把zl中的users数据导入到ljw中,可以这样写sql语句(假设现在连接的是zl数据库):  
  insert   into   ljw.taxitemp.dbo.users  
  select   *   from   users  
  这样,通过一条sql语句就完成了不同数据库服务器之间的数据复制。  
  有人会说,这种sql语句我也会写,我也想到了,但是没办法执行。  
  的确,单纯的这样一条语句没办法执行,因为数据库不知道ljw是什么服务器,也不知道怎样登录,当然会  
  报错。我们可以这样解决注册远程数据库服务器和登录的问题:  
  注册远程数据库服务器:  
  EXEC   sp_addlinkedserver   'ljw',   N'SQL   Server'    
  注册远程数据库服务器的登录方法:  
  EXEC   sp_addlinkedsrvlogin   'ljw',   'false',   NULL,   'sa',   'zz'  
  至于这两个存储过程的详细用法,我就不多讲了,大家看看帮助就明白了。  
   
  只要我们先执行远程数据库服务器注册和登录方法注册,然后就可以把远程数据库当成本地数据库使用了。Top

9 楼windy_224(边Cheng浪子)回复于 2004-12-03 11:11:42 得分 0

都是高手……因为这个我也不会……Top

10 楼hsmserver(撒哈拉之雨的悲伤)回复于 2004-12-03 11:20:06 得分 0

exec   sp_addlinkserver   'B'  
  insert   into   t   select     *   from   B.dbl.t   where   not   exists   (select   *   from   t)Top

11 楼yuvotesyg518(青出于蓝)回复于 2004-12-03 11:55:20 得分 0

试试这条SQL语句,应该是可以的:  
   
  (假设当前服务器为ServerNameA,数据库为DatabaseNameA,表名为TableNameA)  
  insert   into   TableNameA  
  select   *  
  from   OPENDATASOURCE(  
                      'SQLOLEDB',    
                      'Data   Source=ServerNameB;User   ID=YourUserID;Password=YourPassword'  
                    ).DatabaseNameB.dbo.TableNameB  
   
  这条语句将服务器ServerNameB下的数据库DatabaseB中的表TableNameB中的数据追加到当前服务器ServerNameA下的数据库DatabaseNameA中的表TableNameA中去。Top

12 楼zhaoyongjie(随缘)回复于 2004-12-03 12:11:44 得分 0

Select   *   Into   新表名   from   原表Top

13 楼woaichenyu(小吴)回复于 2004-12-03 18:00:33 得分 0

路过,学习  
  Top

14 楼cctv1111(小子)回复于 2004-12-03 19:14:48 得分 0

insert   into   B.dbo.T   from   A.dbo.T       這個簡單不用太復雜了。。:)Top

15 楼pdbird(老巢)回复于 2004-12-03 22:53:43 得分 0

如果表结构相同则  
  insert   into   B.dbo.T   select   *   from   A.dbo.T  
  如果不相同则  
  insert   into   B.dbo.T(字段1,字段2......)   select   字段1,字段2,.....   from   A.dbo.T  
   
  就是这样!!Top

相关问题

  • 一个SQL语句简单的问提请与指点。多谢
  • 一个简单的SQL语句,请大家指点。
  • 一简单的SQL语句,请高手指点
  • 简单的sql语句问题,请指点.
  • 求一简单SQL语句,请大侠出手指点
  • 一个非常简单的SQL语句?请各位指点!!非常感谢!!!
  • 一个非常简单的SQL语句?请各位指点!!非常感谢!!!
  • 一个非常简单的SQL语句?请各位指点!!非常感谢!!!
  • 一个非常简单的SQL语句?请各位指点!!非常感谢!!!
  • 求教一个简单的sql语句,请各位大侠指点

关键词

  • 数据库
  • 语句
  • 字段
  • 服务器
  • 数据
  • 远程
  • 文件
  • 注册
  • 连接
  • view

得分解答快速导航

  • 帖主:delphivszjh

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo