0
如何在删除行之前检查行是否可删除?这就像开发一个新的函数CanDelete(RowID)。SQL Server - 在删除行之前如何检查一行可删除
我在另一个表中引用了这些表中的一些行。
我能做到的一种方法是捕捉异常。有没有更好的方法?
如何在删除行之前检查行是否可删除?这就像开发一个新的函数CanDelete(RowID)。SQL Server - 在删除行之前如何检查一行可删除
我在另一个表中引用了这些表中的一些行。
我能做到的一种方法是捕捉异常。有没有更好的方法?
假设你的要求是你不想删除一行,它是从另一个表引用。
我不会离开这个到C#代码。如果另一个应用程序的开发是通过删除或某人直接访问数据库的话。
首先你应该建立一个关于delete rule的关系。其次,您可以在删除之前编写触发器进行检查,并在其中进行汉德尔。最后,你可以写你删除语句与不存在例如
DELETE from TableA where ID in (select ID from tableA a left outer join tableB b on a.ID = b.ID where b.ID is NULL)
从根本上说,你不能事先知道事务是否会成功。即使另一个表中没有行引用给定的行,也可以添加另一行,在您检查的时间与尝试删除的时间之间引用该行。话虽如此,您可以编写一个查询来计算另一个表中引用您想要删除的行的行数,但这不是一个可靠的解决方案(并且可能比仅处理第一个地点)。 – Cameron 2014-10-17 00:28:27
将删除写为存储过程,或者使用逻辑删除触发器来删除之前检查外键。 – Crowcoder 2014-10-17 00:29:22