在ACCESS和Sql Server中编写sql语句的不同

在ACCESS和Sql Server中编写sql语句的不同:
更新操作sql语句中,将某一字段值更新为两个值的差,语句实例如下:
update table1 set field1=(field1-value1);
以上语句在ACCESS中正确,但在sql server中提示’field1=’附近语法错误,原因在于
field1=(field1-value1)中加了一对括号()。
sql server中的正确写法为:
update table1 set field1=field1-value1;

【官方旗舰店】 SQL基础教程 第2二版/SQL进阶教程 数据库教程数据分析优化查询注入攻击与防御入门程序设计书籍
学习SQL常见技术不同用法 提升SQL应用技能 | 月销量28件
券后93.8-3=90元
原价¥158

淘口令:

¥k6PFXt9epD4¥
 

另外还要注意:上面的写法其实是有漏洞的,当value1为负值时真正执行的语句可能为:
update table1 set field1=field1–1 where fields2=value2;
此时,执行该语句更新数据库,可能会造成其他无关记录(如fields2!=value2)受到影响,更新值也不是预期的正确值。

最终,正确的写法如下:value1可能为运行时变量
update table1 set field1=field1-(value1) where fields2=value2;

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享
评论 抢沙发
CPPKU的头像-cppku-C++库

昵称

取消
昵称表情代码图片