Sql server 如何创建外键,以便在删除父项时,子项中的值将更新为null

Sql server 如何创建外键,以便在删除父项时,子项中的值将更新为null,sql-server,tsql,Sql Server,Tsql,我是T-SQL新手,请帮助: 我有两张桌子 User Id Name History Id Result UserId 如何创建关系,因此一旦我从用户表中删除用户,历史记录表中的UserId列将更新为NULL,然后设置一个pK关系,然后您只需使用常规的删除语法,如从表中删除pK=您可以将FK关系上的操作设置为空: ALTER TABLE dbo.History ADD CONSTRAINT FK_History_User FOREIGN KEY (

我是T-SQL新手,请帮助: 我有两张桌子

User
  Id
  Name

History
  Id
  Result
  UserId

如何创建关系,因此一旦我从用户表中删除用户,历史记录表中的UserId列将更新为NULL,然后设置一个pK关系,然后您只需使用常规的删除语法,如从表中删除pK=

您可以将FK关系上的操作设置为空:

ALTER TABLE dbo.History ADD CONSTRAINT
    FK_History_User FOREIGN KEY
    (
    UserID
    ) REFERENCES dbo.[User]
    (
    ID
    ) ON UPDATE  NO ACTION 
     ON DELETE  SET NULL 
-- Create FK relationship
IF EXISTS (SELECT * FROM sys.objects
WHERE name = N'FK_EmpEducation_Employees' AND [type] = 'F')
ALTER TABLE EmpEducation
DROP Constraint FK_EmpEducation_Employees
GO

ALTER TABLE EmpEducation
ADD CONSTRAINT [FK_EmpEducation_Employees]
FOREIGN KEY (empno)REFERENCES employees(empno)
ON DELETE SET NULL ON UPDATE SET NULL
GO

请参见此处:

您可以像这样对delete set null使用

ALTER TABLE USERS 
ADD CONSTRAINT Users_ThemeID_FK 
FOREIGN KEY (ThemeID) REFERENCES Themes(ThemeID) 
ON DELETE SET NULL

非常感谢。正是我想要的!!!!你是最棒的!我会在3分钟内接受这个答案