3

私はT-SQLを初めて使用します。助けてください:2つのテーブルがあります

User
  Id
  Name

History
  Id
  Result
  UserId

リレーションシップを作成する方法。ユーザーテーブルからユーザーを削除すると、ユーザーID列の履歴テーブルがNULLに更新されます。

4

4 に答える 4

5

on delete set nullこのように使用できます

ALTER TABLE USERS 
ADD CONSTRAINT Users_ThemeID_FK 
FOREIGN KEY (ThemeID) REFERENCES Themes(ThemeID) 
ON DELETE SET NULL
于 2013-03-22T19:20:10.390 に答える
1
ALTER TABLE dbo.History ADD CONSTRAINT
    FK_History_User FOREIGN KEY
    (
    UserID
    ) REFERENCES dbo.[User]
    (
    ID
    ) ON UPDATE  NO ACTION 
     ON DELETE  SET NULL 
于 2013-03-22T19:19:57.853 に答える
0

カスケード削除をオンにしてから、pK関係を設定してから、次のような通常の削除構文を使用してください。Delete From Table Where PK =

于 2013-03-22T19:17:40.590 に答える
0

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/

于 2013-03-22T19:20:10.070 に答える