sql - 为什么 SQL Server 没有默认强制使用 WHERE 子句?

标签 sql sql-server tsql

这对我来说似乎是理所当然的。我听过无数关于人们忘记 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/

相关文章:

sql-server - 如何捕获 DacServices.Deploy 输出?

sql - 您应该如何使用仅包含日期的值针对类型为 "DateTime"的列构造 SQL 搜索条件?

sql - T-Sql从tempdb表中获取数据

sql - SQL COUNT 函数是否自动排除 NULL 值?

php - mysql插入如果没有唯一键不存在

带日期的MySQL查询

python - 如何在 python (geoalchemy) 中设置空间 SQL 查询的范围

c# - 有任何 ORM 可以为高速批量插入提供不错的方法吗?

sql-server - 如何获取 SQL Server 2005/2008 中最昂贵的 SP 的名称

sql - 存储过程逻辑错误