0
私は、NULL可能なFKフィールドを持つテーブルを持っています。私はローダーを変更することを避けるためにそれを無効にしました。このトリガーで挿入されたテーブルを使用して、NULL可能な外部キーのデフォルト値を設定する必要がありますか?
(広告主)* 1(通貨)を達成するために、私は、単純なトリガーを書いた:
ALTER TRIGGER InsertedAdvertisersDefaultCurrency
ON dbo.Advertisers
FOR INSERT
AS
UPDATE Advertisers
SET Currency_Id=(SELECT TOP 1 Id FROM Currencies WHERE Name='USD')
WHERE Currency_Id=NULL
私の質問は、私はすべての挿入時にヌルの行のテーブル全体をチェックしていますかについて、基本的です。 (?)私は挿入テーブルを使用する必要がありますように私は感じ
はここで、テーブルの:
CREATE TABLE [dbo].[Advertisers](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](max) NOT NULL,
[Currency_Id] [int] NULL,
CONSTRAINT [PK_Advertisers] 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]
GO
ALTER TABLE [dbo].[Advertisers] WITH CHECK ADD CONSTRAINT [FK_CurrencyAdvertiser1] FOREIGN KEY([Currency_Id])
REFERENCES [dbo].[Currencies] ([Id])
GO
ALTER TABLE [dbo].[Advertisers] CHECK CONSTRAINT [FK_CurrencyAdvertiser1]
GO
私の元の引き金は私が期待したことさえしなかったので、それは大きな助けとなりました。 –
ああ、私は '= null'を使用し、私は 'nullが使用されている必要がありますので、私のオリジナルは動作しなかったと思う...私はいつも間違いを犯すので、C#ほとんどの時間 –