当前位置: 首页 > 面试题库 >

我可以在删除SQL Server之前检查约束吗?

黄俊雄
2023-03-14
问题内容

我有以下情况。主表和许多其他表通过外键链接在一起。现在,当我想删除主表中的一行时,将会发生ConstraintsViolation,这是有目的的,也是很好的。

现在,我希望能够在触发删除行事件之前检查ConstraintsViolation是否会发生。

这可能吗?


问题答案:
If Exists ( Select * From OtherTable
            Where OtherTableFKColumn = MainTablePrimaryKey) 
   Begin
       Rollback Transaction
       RaisError('Violating FK Constraint in Table [OtherTable]', 16, 1)
   End


 类似资料:
  • 问题内容: 我有一个带有列-ID,Property,Property_Value的SQL Server表RealEstate。该表大约有5到1千万行,并且将来还会增加。我只想在此表中不存在Id,Property,Property_Value的组合时插入行。 示例表- 不允许插入。但是,还可以。我很好奇,知道这样做的“最佳”方法和 原因 。为什么这部分对我来说最重要。两种检查方法是- 在应用程序级别

  • 主要内容:选取设置检查约束的字段,在创建表时设置检查约束,在修改表时添加检查约束,删除检查约束MySQL检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。设置检查约束时要根据实际情况进行设置,这样能够减少无效数据的输入。 在《MySQL默认值》和《MySQL非空约束》中讲解的默认值约束和非空约束也可看作是特殊的检查约束。 选取设置检查约束的字段 检查约束使用 CHECK 关键字,具体的语法格式如下: C

  • 主要内容:Oracle Check约束简介在本教程中,您将学习如何使用Oracle检查约束来强制域(列)的完整性。 Oracle Check约束简介 Oracle检查约束允许通过限制一列或多列所接受的值来强制执行域完整性。 要创建一个检查约束,可以定义一个返回或的逻辑表达式。 Oracle使用此表达式来验证正在插入或更新的数据。 如果表达式的计算结果为,则Oracle接受数据并进行插入或更新。 否则,Oracle将拒绝这些数据,新数据根本

  • 问题内容: 什么是防止在创建约束约束之前检查约束的最佳机制?实体的修改? 假设“用户”实体具有“ loginid”作为唯一约束,明智的做法是在创建或修改之前检查是否已存在具有该loginid名称的用户条目。 要么 您是否要让数据库抛出ConstraintViolationException并在UI层中适当地处理此消息。在jboss接缝框架中应在哪里执行此类检查。 注意:目前,没有对seam-gen

  • 问题内容: 我有下表Goods_In_Wagon(Goods_ID,Wagon_ID,Total_Weight)。我需要创建一些if语句检查约束,说 “如果WAGON_ID在90到99之间,则Total_Weight必须大于10。” AND“如果WAGON_ID在100到110之间,则Total_Weight必须大于20。” AND“如果WAGON_ID在111到120之间,则Total_Weig

  • 问题内容: 我继承了一个使用MySQL的应用程序,该应用程序由PHP前端使用。编写此系统的人花了相当长的时间才能确保用户输入的代码有效- tat表示这些代码也存在于另一个表中。 当我第一次看到此消息时,我想知道为什么他没有使用CHECK约束并让dbms进行解决- 我设想有很多不同的程序会实现相同的检查,而不仅仅是dbms中的一个地方。然后我发现MySQL不支持Check约束(严格来说不是真的- 它