0
A
答えて
3
いいえ、あなたはトリガまたは
0
は、あなたがにonUpdateトリガーを使用してみましたが、他の機構を別にロジックに対処する必要がありますか?トランザクション(tsql)を使用しているので、これが可能な解決策になるはずです。私が知る限り、チェックの制約は、例えば、クエリを更新します。
+0
はい。問題は私のERPシステムがデータベースの上に座っているだけで、制約エラーメッセージが表示されますが、エラーメッセージは表示されないということです。 – tdjfdjdj
0
NOT NULL
とマークします。DEFAULT
の値を追加します。- 挿入されたNULLを に置き換えるために
INSTEAD OF INSERT
トリガを作成し、デフォルト値にします。
これはすべての要件を満たす必要があります。
CREATE TABLE Client
(
ClientId int,
OptionalOnInsert int NOT NULL DEFAULT(0),
Field1 int,
Field2 int
)
GO
CREATE TRIGGER TR_Client_InsteadOfInsert ON Client
INSTEAD OF INSERT
AS
INSERT Client (ClientId, OptionalOnInsert, Field1, Field2)
SELECT ClientId, OptionalOnInsert, Field1, Field2
FROM INSERTED
WHERE OptionalOnInsert is not null
INSERT Client (ClientId, Field1, Field2)
SELECT ClientId, Field1, Field2
FROM INSERTED
WHERE OptionalOnInsert is null
GO
-- Inserting NULL succeeds
INSERT Client (ClientId, OptionalOnInsert)
VALUES (1, NULL)
-- Updating to NULL fails
UPDATE Client
SET OptionalOnInsert = NULL
WHERE ClientId = 1
0
私はフィールドがNULLであるかどうかを確認するために、更新にチェックするトリガーをやってみます。
関連する問題
hmmm。問題は私のERPシステムがデータベースの上に座っているだけで、制約エラーメッセージが表示されますが、エラーメッセージは表示されないということです。 – tdjfdjdj