一个数据库访问的问题,急,(100分)

herotx 2003-09-30 09:12:00
现有两台服务器:SERVER1和SERVER2,
在SERVER1上有数据库DB1,在SERVER2上有数据库DB2,我在SQL的查询分析器上打开了SERVER1上的数据库DB1,输入语句select * from SERVER2.DB2.dbo.table2,想调用
SERVER2上的DB2上的表table2里面的数据,系统提示"SQL Server 不存在或访问被拒绝".
请问高手这是什么原因,急,在线等待100分.
...全文
44 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujohny 2003-09-30
  • 打赏
  • 举报
回复
1:建立链接服务器
EXEC sp_addlinkedserver
'链接名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=对方ip;UID=sa;PWD=密码;'
(注意是登陆对方服务器的密码)
GO
2:授权访问
EXEC sp_addlinkedsrvlogin '链接名','false'
3:访问
select * from 链接名.数据库名..表
yujohny 2003-09-30
  • 打赏
  • 举报
回复
select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
pengdali 2003-09-30
  • 打赏
  • 举报
回复
1、先保证ping通

2、在dos下写入telnet ip 1433不会报错

3、用ip连如企业管理器:
企业管理器-->右键SQlserver组-->新建sqlserver注册-->下一步-->写入远程实例名(IP,机器名)-->下一步-->选Sqlserver登陆-->下一步-->写入登陆名与密码(sa,pass)-->下一步-->下一步-->完成

4、如果还不行:
sqlserver服务器-->开始菜单-->SQLserver-->服务器网络实用工具-->启用 WinSock代理-->代理地址:(sqlserver服务器IP)-->代理端口-->1433-->OK了

5、如果还不行:
sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了
pengdali 2003-09-30
  • 打赏
  • 举报
回复
select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名

insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名

或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧