让我无助的SQL语句
我想写一个存储过程,可以定期将一个数据库里的一张表里的数据都导入远端服务器上的另外一张表里,并且这两张表里的字段名都不一致,这能用一条语句写下来么,我想了好久都没有想明白 问题点数:60、回复次数:18Top
1 楼runfeng(sunday)回复于 2005-08-01 10:42:03 得分 0
upTop
2 楼szhuk(小佳)回复于 2005-08-01 10:45:12 得分 5
首先可能要建立一个链接服务器
Insert 链接服务器名.数据库名.目标表(目标字段1,目标字段2,....) Select 对应字段1,对应字段2,.. from TableNameTop
3 楼gabriel1(说自己的话,让别人走路去吧)回复于 2005-08-01 10:45:35 得分 25
如果你sql开放了远程访问,那么可以直接将远端的服务器映射一个机器名
Insert Into RemoteName.DatabaseName.ToTableName
Select
Field1 As ToTableNameField1,
Field2 As ToTableNameFiedl2
From
LocalTableName
如果没有开放,那么建议远程服务器部署一个webservice,本地调用.
Top
4 楼penning(飞鱼)回复于 2005-08-01 10:47:12 得分 0
INSERT INTO ....
SELECT ....
FROM ....
WHERE ....Top
5 楼szhuk(小佳)回复于 2005-08-01 10:55:24 得分 0
然后建立一个任务,定期执行就可以了Top
6 楼kevintt(虚心求教)回复于 2005-08-01 11:09:31 得分 0
gabriel1(风林火山) :你好
我的SQL已经开了远程访问了,比如说我远端服务器和本地服务器都为TT,数据库和表名分别是TT和aa
我该怎么写
insert into RemoteName.TT.TT
select
aa.name as TT.name
aa.sex as TT.sex
from
aa
Top
7 楼kevintt(虚心求教)回复于 2005-08-01 11:28:00 得分 0
还有人来帮我解释一下么,多谢
Top
8 楼sunnyBelt(一蓑烟雨)回复于 2005-08-01 12:08:35 得分 5
这个最好不要用存储过程吧,用DTS(数据传输服务)阿,然后在Windows的计划任务里面添加一个任务定期执行这个DTS包就可以了!
关于DTS的知识请参考SQL联机丛书。Top
9 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-08-01 12:10:39 得分 0
比如说我远端服务器和本地服务器都为TT????什么意思?Top
10 楼kevintt(虚心求教)回复于 2005-08-01 12:24:34 得分 0
是服务器的名字都为TTTop
11 楼kevintt(虚心求教)回复于 2005-08-01 13:04:21 得分 0
午休过后怎么还是没有人来啊Top
12 楼icedut(冰-装修进行中)回复于 2005-08-01 13:15:24 得分 0
insert into 机器名字.databasename.username.tablename
select col.....
from tablename1
Top
13 楼icedut(冰-装修进行中)回复于 2005-08-01 13:16:39 得分 0
insert into 机器名字.databasename.username.tablename (col...)
select col..... ---需要选择的列
from ttTop
14 楼kevintt(虚心求教)回复于 2005-08-01 13:27:40 得分 0
请问,这个username是什么名称呢
Top
15 楼gabriel1(说自己的话,让别人走路去吧)回复于 2005-08-01 13:29:54 得分 0
gabriel1(风林火山) :你好
我的SQL已经开了远程访问了,比如说我远端服务器和本地服务器都为TT,数据库和表名分别是TT和aa
我该怎么写
insert into RemoteName.TT.TT
select
aa.[name] as [name]
aa.sex as sex
from
aa
不过之前首先要创建连接
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
Top
16 楼icedut(冰-装修进行中)回复于 2005-08-01 13:30:47 得分 25
用户名字
如果都是dbo的可以不用写
如果两个数据库的用户不同就要写了Top
17 楼icedut(冰-装修进行中)回复于 2005-08-01 13:32:38 得分 0
insert into RemoteName.TT.TT
--第一个TT后面要在加一个.
insert into RemoteName.TT..TT
Top
18 楼kevintt(虚心求教)回复于 2005-08-01 13:43:17 得分 0
好的,多谢两位,我先试试Top




