31 个解决方案
#1
zjcxc(邹建) 大侠帮忙啊
#2
insert 另一表 select 字段+点什么 from 一个表
#3
--如果跨库:
insert 另一库..另一表 select 字段+点什么 from 一个库..一个表
insert 另一库..另一表 select 字段+点什么 from 一个库..一个表
#4
这两个库不在同一台机器上,必须要用链接服务器吗
#5
--不在同一台电脑上,那可以用下面两种方法:
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
#6
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
--导入示例
select * into 表 from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
#7
我执行了以下代码:
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
select * from srv_lnk.数据库名.dbo.表名
但报错:
在 sysservers 中未能找到服务器 'srv_lnk'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
select * from srv_lnk.数据库名.dbo.表名
但报错:
在 sysservers 中未能找到服务器 'srv_lnk'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
#8
--对应的参数改了吗?
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
select * from srv_lnk.数据库名.dbo.表名
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
select * from srv_lnk.数据库名.dbo.表名
#9
改了,srv_lnk这个名字是不是随便取的啊
#10
我把srv_lnk改成自己的机器名可以通过,但运行时报错,说那个名字服务器以存在
#11
srv_lnk就是你的链接服务器名,查询的时候与创建的时候要一致,还有,你要加上那个go
#12
srv_lnk我能否用变量,即动态的。
#13
添加链接服务器的时候可以,具体查询的时候不能.
#14
链接服务器名我能不能随便取个名字,一定要跟它实际名字一样吗
#15
可以随便取啊.
#16
我的代码是这样的:
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.dbname.dbo.table1
exec sp_dropserver 'test','droplogins'
这样就是报错
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.dbname.dbo.table1
exec sp_dropserver 'test','droplogins'
这样就是报错
#17
非常感谢邹建大侠,这么晚了还为我解答问题,非常感谢
#18
--我的电脑上测试通过(不过很奇怪,我第一次用你的代码也不行,后来用我的代码做一次,再用你的又行了):
exec sp_addlinkedserver 'test','','SQLOLEDB','ymn'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
exec sp_addlinkedserver 'test','','SQLOLEDB','ymn'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
#19
我再试试看,昨天到3点,哎
#20
邹建大侠,这是我完整的存储过程,麻烦您帮我看看,错在哪里:
CREATE Procedure UpLoadData
as
--创建链接服务器
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.30'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''go
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
GO
我在查询分析器中执行就报这个错误:
服务器: 消息 7202,级别 11,状态 2,行 2
在 sysservers 中未能找到服务器 'test'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
服务器: 消息 15015,级别 16,状态 1,过程 sp_dropserver,行 28
服务器 'test' 不存在。请用 sp_helpserver 来显示可用的服务器。
#21
--存储过程中不能用go
CREATE Procedure UpLoadData
as
--创建链接服务器
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''192.168.0.30''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
select * from test.pubs.dbo.syscolumns
exec('exec sp_dropserver ''test'',''droplogins''')
GO
CREATE Procedure UpLoadData
as
--创建链接服务器
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''192.168.0.30''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
select * from test.pubs.dbo.syscolumns
exec('exec sp_dropserver ''test'',''droplogins''')
GO
#22
呜呜,我还是不行,报错:
服务器: 消息 7202,级别 11,状态 2,过程 UpLoadData,行 30
在 sysservers 中未能找到服务器 'test'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
是不是sql server需要设置的,邹建大侠,不好意思,麻烦您这么久了,真是非常感谢。
服务器: 消息 7202,级别 11,状态 2,过程 UpLoadData,行 30
在 sysservers 中未能找到服务器 'test'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
是不是sql server需要设置的,邹建大侠,不好意思,麻烦您这么久了,真是非常感谢。
#23
不需要做任何设置啊,真是怪了.
你试试改链接服务器名
你试试改链接服务器名
#24
你那边可以运行吗,运行结果应该是返回一个结果集是吧
我也觉得很怪,邹建大侠您有qq等联系方式吗,
还有我这个存储过程不是写在master数据库中,这个应该没关系吧
我用sp_addlinkedserver 创建了一个链接服务器,哪里可以知道我有没有创建成功,我怀疑是我没有创建成功的缘故。
我也觉得很怪,邹建大侠您有qq等联系方式吗,
还有我这个存储过程不是写在master数据库中,这个应该没关系吧
我用sp_addlinkedserver 创建了一个链接服务器,哪里可以知道我有没有创建成功,我怀疑是我没有创建成功的缘故。
#25
在企业管理器--安全性--链接服务器可以看到.
#26
有一点怪的就是,我用你的代码,第一次不成功.
然后我改用我的代码,成功.再改用你的代码,也成功.
然后我改用我的代码,成功.再改用你的代码,也成功.
#27
我不用存储过程,直接在查询分析器中执行以下语句可以的,这个怪了,难道不让用存储过程吗
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
#28
非常感谢邹建大侠,但问题还是不行。
#29
那我不用存储过程的话怎么来调这个语句呢,因为这里不是只有一句语句
#30
--下面是成功的测试:
--存储过程
create proc p_test
as
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''ymn''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
exec('select * from test.pubs.dbo.syscolumns')
exec('exec sp_dropserver ''test'',''droplogins''')
go
--调用
exec p_test
go
--删除测试
drop proc p_test
--存储过程
create proc p_test
as
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''ymn''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
exec('select * from test.pubs.dbo.syscolumns')
exec('exec sp_dropserver ''test'',''droplogins''')
go
--调用
exec p_test
go
--删除测试
drop proc p_test
#31
我现在要晚上12点整,把一个数据库中的数据全部读取到另外一个数据库中,要怎么做啊?大侠帮帮忙吧。
#1
zjcxc(邹建) 大侠帮忙啊
#2
insert 另一表 select 字段+点什么 from 一个表
#3
--如果跨库:
insert 另一库..另一表 select 字段+点什么 from 一个库..一个表
insert 另一库..另一表 select 字段+点什么 from 一个库..一个表
#4
这两个库不在同一台机器上,必须要用链接服务器吗
#5
--不在同一台电脑上,那可以用下面两种方法:
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--查询示例
select * from srv_lnk.数据库名.dbo.表名
--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名
go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
#6
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
--导入示例
select * into 表 from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
#7
我执行了以下代码:
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
select * from srv_lnk.数据库名.dbo.表名
但报错:
在 sysservers 中未能找到服务器 'srv_lnk'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
select * from srv_lnk.数据库名.dbo.表名
但报错:
在 sysservers 中未能找到服务器 'srv_lnk'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
#8
--对应的参数改了吗?
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
select * from srv_lnk.数据库名.dbo.表名
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
select * from srv_lnk.数据库名.dbo.表名
#9
改了,srv_lnk这个名字是不是随便取的啊
#10
我把srv_lnk改成自己的机器名可以通过,但运行时报错,说那个名字服务器以存在
#11
srv_lnk就是你的链接服务器名,查询的时候与创建的时候要一致,还有,你要加上那个go
#12
srv_lnk我能否用变量,即动态的。
#13
添加链接服务器的时候可以,具体查询的时候不能.
#14
链接服务器名我能不能随便取个名字,一定要跟它实际名字一样吗
#15
可以随便取啊.
#16
我的代码是这样的:
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.dbname.dbo.table1
exec sp_dropserver 'test','droplogins'
这样就是报错
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.dbname.dbo.table1
exec sp_dropserver 'test','droplogins'
这样就是报错
#17
非常感谢邹建大侠,这么晚了还为我解答问题,非常感谢
#18
--我的电脑上测试通过(不过很奇怪,我第一次用你的代码也不行,后来用我的代码做一次,再用你的又行了):
exec sp_addlinkedserver 'test','','SQLOLEDB','ymn'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
exec sp_addlinkedserver 'test','','SQLOLEDB','ymn'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
#19
我再试试看,昨天到3点,哎
#20
邹建大侠,这是我完整的存储过程,麻烦您帮我看看,错在哪里:
CREATE Procedure UpLoadData
as
--创建链接服务器
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.30'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''go
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
GO
我在查询分析器中执行就报这个错误:
服务器: 消息 7202,级别 11,状态 2,行 2
在 sysservers 中未能找到服务器 'test'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
服务器: 消息 15015,级别 16,状态 1,过程 sp_dropserver,行 28
服务器 'test' 不存在。请用 sp_helpserver 来显示可用的服务器。
#21
--存储过程中不能用go
CREATE Procedure UpLoadData
as
--创建链接服务器
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''192.168.0.30''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
select * from test.pubs.dbo.syscolumns
exec('exec sp_dropserver ''test'',''droplogins''')
GO
CREATE Procedure UpLoadData
as
--创建链接服务器
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''192.168.0.30''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
select * from test.pubs.dbo.syscolumns
exec('exec sp_dropserver ''test'',''droplogins''')
GO
#22
呜呜,我还是不行,报错:
服务器: 消息 7202,级别 11,状态 2,过程 UpLoadData,行 30
在 sysservers 中未能找到服务器 'test'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
是不是sql server需要设置的,邹建大侠,不好意思,麻烦您这么久了,真是非常感谢。
服务器: 消息 7202,级别 11,状态 2,过程 UpLoadData,行 30
在 sysservers 中未能找到服务器 'test'。请执行 sp_addlinkedserver 以将服务器添加到 sysservers。
是不是sql server需要设置的,邹建大侠,不好意思,麻烦您这么久了,真是非常感谢。
#23
不需要做任何设置啊,真是怪了.
你试试改链接服务器名
你试试改链接服务器名
#24
你那边可以运行吗,运行结果应该是返回一个结果集是吧
我也觉得很怪,邹建大侠您有qq等联系方式吗,
还有我这个存储过程不是写在master数据库中,这个应该没关系吧
我用sp_addlinkedserver 创建了一个链接服务器,哪里可以知道我有没有创建成功,我怀疑是我没有创建成功的缘故。
我也觉得很怪,邹建大侠您有qq等联系方式吗,
还有我这个存储过程不是写在master数据库中,这个应该没关系吧
我用sp_addlinkedserver 创建了一个链接服务器,哪里可以知道我有没有创建成功,我怀疑是我没有创建成功的缘故。
#25
在企业管理器--安全性--链接服务器可以看到.
#26
有一点怪的就是,我用你的代码,第一次不成功.
然后我改用我的代码,成功.再改用你的代码,也成功.
然后我改用我的代码,成功.再改用你的代码,也成功.
#27
我不用存储过程,直接在查询分析器中执行以下语句可以的,这个怪了,难道不让用存储过程吗
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
exec sp_addlinkedserver 'test','','SQLOLEDB','192.168.0.66'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
go
select * from test.pubs.dbo.syscolumns
go
exec sp_dropserver 'test','droplogins'
#28
非常感谢邹建大侠,但问题还是不行。
#29
那我不用存储过程的话怎么来调这个语句呢,因为这里不是只有一句语句
#30
--下面是成功的测试:
--存储过程
create proc p_test
as
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''ymn''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
exec('select * from test.pubs.dbo.syscolumns')
exec('exec sp_dropserver ''test'',''droplogins''')
go
--调用
exec p_test
go
--删除测试
drop proc p_test
--存储过程
create proc p_test
as
exec('exec sp_addlinkedserver ''test'','''',''SQLOLEDB'',''ymn''')
exec('exec sp_addlinkedsrvlogin ''test'',''false'',null,''sa'',''''')
exec('select * from test.pubs.dbo.syscolumns')
exec('exec sp_dropserver ''test'',''droplogins''')
go
--调用
exec p_test
go
--删除测试
drop proc p_test
#31
我现在要晚上12点整,把一个数据库中的数据全部读取到另外一个数据库中,要怎么做啊?大侠帮帮忙吧。