关于opendatasource和openrowset的使用问题

wgsasd311 2005-09-14 06:10:57
--语句一:
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.18.112;User ID=sa;password='
).xiaokang1.dbo.h_info
--语句二:
select * from openrowset(
'sqloledb','192.168.18.112';'sa';'','select * from xiaokang1.dbo.h_info')
在查询分析器里语句一执行失败,语句二执行成功。为什么?
...全文
322 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgsasd311 2005-09-15
  • 打赏
  • 举报
回复
select * from OPENDATASOURCE
('SQLOLEDB','Data Source=192.168.18.112;User ID=sa;Password=').xiaokang1.dbo.h_info-----------报错信息:服务器: 消息 7357,级别 16,状态 2,行 1
未能处理对象 '"xiaokang1"."dbo"."h_info"'。OLE DB 提供程序 'SQLOLEDB' 指出该对象中没有任何列。
MorningTea 2005-09-15
  • 打赏
  • 举报
回复
wgsasd311(自强不息) ,语句一执行失败,错误信息是什么
MorningTea 2005-09-15
  • 打赏
  • 举报
回复
那我也不知道,我原来就是不行!
期待你的解决方案ing'
wgsasd311 2005-09-15
  • 打赏
  • 举报
回复
语法没问题,是服务器(192.168.18.112)有问题,具体什么原因还不清楚,因为我试别的电脑是行的,想不通的是为什么192.168.18.112的机子用openrowset就可以。特别感谢 MorningTea(一勺抹茶) 和rivery(river)两位。
rivery 2005-09-15
  • 打赏
  • 举报
回复
--我这里多次测试没有发现第一个语句的问题。那楼主可以换个链接字符串试试。
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'driver={sql server};server=192.168.18.112;UID=sa;Pwd='
).xiaokang1.dbo.h_info
clarkchiang 2005-09-15
  • 打赏
  • 举报
回复
SELECT * FROM
OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.18.112;User ID=sa;Password='
).xiaokangl.dbo.[h_info]
你首先先判断你是否有xiaokangl数据库,然后是否有h_info表
分多就不要浪费,给我吧。:)
wgsasd311 2005-09-15
  • 打赏
  • 举报
回复
各位高手都怎么了,俺第一次提问,就没人理我?我还有大把大把的分呢,叫我以后送给谁呢?
wgsasd311 2005-09-14
  • 打赏
  • 举报
回复
to MorningTea(一勺抹茶) :
我的IP肯定是通的,否则的话,我写的第二条语句也是用同一IP都可能运行(openrowset).
至于你后面提到的各种协义,更是没问题的.
MorningTea 2005-09-14
  • 打赏
  • 举报
回复
--我的问题解决了

我在客户端来运行这个工具.

  点击:程序 -- Microsoft SQL Server -- 客户端网络使用工具

  打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议.
  一般而言,需要启用命名管道以及 TCP/IP 协议.
  点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.

  单击"别名"选项卡,为服务器配置别名

  我增加了一个别名,就ok啦!
MorningTea 2005-09-14
  • 打赏
  • 举报
回复
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.18.112;User ID=sa;password='
).xiaokang1.dbo.h_info

--这句是用ip来连接,
我一般都不用ip来连接,我ping我要连接的服务器,然后就用ip来连接,结果不行,但是用服务器名称就可以,估计楼主也是如此!可能是要设置,否则不能用ip来连接,明天等上司回来问问他丫
xueguang 2005-09-14
  • 打赏
  • 举报
回复
SELECT * FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=192.168.18.112,1433;UID=sa;PWD=123456',
xiaokang1.dbo.h_info)
zlp321002 2005-09-14
  • 打赏
  • 举报
回复
--try 语句一这样应该可以
select * from OPENDATASOURCE('SQLOLEDB','Data Source=192.168.18.112;User ID=sa;Password=').xiaokang1.dbo.h_info

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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