一.

  sqlserver引号问题:因为要使用远程连接,所以sql语句要用单引号括起来

SELECT * FROM OPENQUERY ([192.168.***.***] ,'select * from 数据库.dbo.表名')

  远程连接详细代码在以前博客中介绍http://www.cnblogs.com/xiaoguangit/p/5383659.html

  

  在使用条件查询时习惯对字符串用了双引号

SELECT * FROM OPENQUERY ([192.168.***.***] ,'select * from 数据库.dbo.表名 where name="User1"')

  结果报错

链接服务器"192.168.***.***"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "无法完成延迟准备。"。
消息 8180,级别 16,状态 1,第 1 行
无法预定义语句。
消息 207,级别 16,状态 1,第 1 行
列名 'User1' 无效。

  这里说是"列名'User1'无效",查询资料后发现,sqlserver对字符都是使用单引号,双引号用在比如 两个单词组成的表名(表名为person.look)或多个字符的字段(列名为name.sex)等.

 

  所以,代码更改为:

SELECT * FROM OPENQUERY ([192.168.***.***] ,'select * from 数据库.dbo.表名 where name=''User1''')

  执行正确

posted on 2016-04-18 10:24  小光  阅读(827)  评论(0编辑  收藏  举报