一.
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''')
执行正确
若无凌云志,何以逆苍天.