none
CHECK作用 RRS feed

  • 问题

  • ALTER TABLE [dbo].[Account]  WITH CHECK ADD  CONSTRAINT [FK_Account_Profiles] FOREIGN KEY([UniqueID])
    REFERENCES [dbo].[Profiles] ([UniqueID])
    ON UPDATE CASCADE
    ON DELETE CASCADE
    GO

    ALTER TABLE [dbo].[Account] CHECK CONSTRAINT [FK_Account_Profiles]-----该条语句起什么作用 ?
    GO

    2021年3月16日 2:41

全部回复

  • 你好,

    >>ALTER TABLE [dbo].[Account] CHECK CONSTRAINT [FK_Account_Profiles]-----该条语句起什么作用 ?

    此语句是为了确保在创建约束后将其启用。

    在您的第一条语句中包括了WITH CHECK,这意味着在创建约束时就会对照约束来检查现有的不良数据,即外键列([dbo].[Account].[UniqueID])中如果存在被引用列([dbo].[Profiles] ([UniqueID]))中不存在的数据,那么添加约束将失败。

    如果第一条语句在创建约束时使用WITH NOCHECK,这表明创建约束时不会对照约束来检查现有的不良/不匹配数据。


    约束创建后,使用ALTER TABLE test NOCHECK CONSTRAINT [test_FK] 将会禁用约束。
    2021年3月16日 3:12
  • 你好,
    请问您的问题解决了吗?
    如果您觉得我们的回复帮助你解决了该问题,请帮忙‘标记为答案'以帮助其他社区成员迅速找到有用的答复。
    如果没有,请回复并告诉我们当前情况,以便提供进一步的帮助。
    谢谢
    2021年3月18日 1:26