这个SQL语句怎么写?请高手指点!很简单!
现在有两个服务器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




