这对我来说似乎是理所当然的。我听过无数关于人们忘记 UPDATE 或 DELETE 中的 WHERE 子句并毁掉整个表的故事。我知道粗心的人不应该直接发出查询等等...并且存在您想要影响所有行的合法情况,但是默认情况下有一个需要此类查询的选项是否有意义可以这样写:
UPDATE MyTable SET MyColumn = 0 WHERE *
或者不改变语言,
UPDATE MyTable SET MyColumn = 0 WHERE 1 = 1 -- tacky, I know
最佳答案
因为spec不需要它,并且无论如何您都不应该直接针对生产数据运行 ad hoc sql。
关于sql - 为什么 SQL Server 没有默认强制使用 WHERE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/873616/