« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9691969 建立时间:2004年12月20日 |

| |
[数据库]MSSQL7中吓人一身冷汗的BUG 文章收藏
邢红瑞 发表于 2005/8/3 12:58:49 |
在MSSQL7.0中用查询分析器选择NorthWind数据库,复制粘贴下面的一条语句执行:update Orders set CustomerID='HANAR',EmployeeID=4 where OrderID='10250'看看执行结果,也许你会吓出一身冷汗!!!因为执行结果是修改了830行记录,这830行记录的CustomerID字段都改成了'HANAR'。为什么呢?大家注意上面那条语句中间的逗号,那不是一个简单的逗号,而是一个中文的逗号。就是这个致命的中文逗号,导致了从逗号以后的语句全被忽略,而且执行并未报错。(用Delphi等开发工具编制数据库程序,一样会碰到这个问题)实际执行的语句就变成了update Orders set CustomerID='HANAR'所以在使用MSSQL7.0的朋友一定要特别注意了,不然这个BUG导致的错误一定会让你欲哭无泪!『注:此BUG只在 MSSQL 7.0 版本中存在,MSSQL2000已经修正此问题』我使用的MSSQL 7.0 未使用任何升级补丁,所以MSSQL 7.0 的升级补丁是否修正了此BUG我并未测试,请大家自己测试。 |
|
|