有这样一个表,表名 VSL, VSL CODE 和 VSL VOY 字段都是KEY,其中一条记录的 VSL CODE 字段值是 ‘2206’,另一个是 ‘2206 ’(尾部有一个空格),咋一看没有任何区别。把记录全选,复制黏贴到记事本就能看出来。
VSL CODE VSL VOY ETA
7FY 2206 2012-12-26
7FY 2206 2012-12-26
用 Select 语句
SELECT * FROM [VSL] WHERE [VSL CODE]='7FY' AND [VSL VOY]='2206 ' /****** 2206后有一个空格 ******/
结果是那个不带空格的记录。然后发现这个
http://support.microsoft.com/kb/154886/EN-US?FR=1
结论是可能和 ANSI_PADDING 功能有关。
再参考
http://blog.csdn.net/maco_wang/article/details/7016630
可以把语句这样写
SELECT * FROM [VSL] WHERE [VSL CODE]='7FY' AND [VSL VOY]='2206‘+char(9)/****** 我发现后面的空白字符其实是制表符,不是空格 ******/
问题解决。