我找到了许多q& a关于如何从数据库中删除大量数据或如何加快流程,但没有关于如何避免这样做,例如:
我有一个10k行的表(无论列是什么)。 而不是写
DELETE from tableName WHERE ID=123
在编写应用程序时,有人忘记了where语句
DELETE from tableName
这将导致删除表格中的每一行(我不明白 这是一个不可能的场景)
对于UPDATING一行来说同样如此,通过忘记WHERE子句,您将更新表中的每一行(您最初都不会注意到这一行)
UPDATE tableName set Attribute='new_Value'
在编写Windows应用程序时,前一个实际发生在我身上(幸运的是它只是一个测试数据库)
现在我的问题是,我们如何避免做这类事情?
一些想法:
1)不要向sa以外的任何人授予更新和删除权限,并编写SQL存储过程/函数来更新单行
2)在更新/删除之前检查带触发器的行数