2つのテーブルがあるとしましょう
CREATE TABLE [dbo].[People](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Nom] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_People] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
と
CREATE TABLE [dbo].[Transactions](
[ID] [int] IDENTITY(1,1) NOT NULL,
[BUYER_ID] [int] NOT NULL,
[SELLER_ID] [int] NOT NULL,
[DateTransaction] [datetime] NOT NULL,
CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ロジックは、トランザクション テーブルが people テーブルからの 2 つのレコード、バイヤーとセラーを必要とすることです。
私がやろうとしているのは、BUYER_ID 列と SELLER_ID 列の両方にカスケード削除を実装することです。
ただし、問題なく1つ(どちらか)を追加できますが、2つ目を追加しようとすると、保存するときにエラーメッセージが表示されます...
Unable to create relationship 'FK_Transactions_Buyer'.
Introducing FOREIGN KEY constraint 'FK_Transactions_Buyer' on table 'Transactions' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
トリガーを使用せずにこれを行う方法はありますか、またはトリガーがこれを行うための最良の方法です