私はT-SQLを初めて使用します。助けてください:2つのテーブルがあります
User
Id
Name
History
Id
Result
UserId
リレーションシップを作成する方法。ユーザーテーブルからユーザーを削除すると、ユーザーID列の履歴テーブルがNULLに更新されます。
私はT-SQLを初めて使用します。助けてください:2つのテーブルがあります
User
Id
Name
History
Id
Result
UserId
リレーションシップを作成する方法。ユーザーテーブルからユーザーを削除すると、ユーザーID列の履歴テーブルがNULLに更新されます。
on delete set null
このように使用できます
ALTER TABLE USERS
ADD CONSTRAINT Users_ThemeID_FK
FOREIGN KEY (ThemeID) REFERENCES Themes(ThemeID)
ON DELETE SET NULL
ALTER TABLE dbo.History ADD CONSTRAINT
FK_History_User FOREIGN KEY
(
UserID
) REFERENCES dbo.[User]
(
ID
) ON UPDATE NO ACTION
ON DELETE SET NULL
カスケード削除をオンにしてから、pK関係を設定してから、次のような通常の削除構文を使用してください。Delete From Table Where PK =
FK関係のアクションを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
ここを参照してください:http ://www.mssqltips.com/sqlservertip/2365/sql-server-foreign-key-update-and-delete-rules/