在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;

null

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容