私のSSISプロジェクトで作業しています。私は正常にいくつかのcsvを(VSのIntegration Servicesを通して)私のデータベースにロードすることに成功しました。そして今、私はデータベースにトリガーを作成しようとしています。T-SQL(SQL Server 2016)列値のトリガ、挿入時に変更する
私がしたいことは:列番号second_road_class
が-1のとき、私は6に変えたいと思います。挿入中にトリガーを発射したいです。
私のトリガコードはSSMSで正常にデバッグするようです!しかし、後でcsvをもう一度挿入しようとすると、-1
のsecond_road_class
列はそのままの状態になります。
トリガーコード:任意の助け
CREATE TRIGGER AccidentsTrigger
ON [Accidents]
INSTEAD OF INSERT
AS BEGIN
SET NOCOUNT ON
IF (SELECT [second_road_class] FROM INSERTED) LIKE '-1'
BEGIN
UPDATE [Accidents]
SET [second_road_class] = '6'
WHERE [second_road_class] = '-1'
END
END
感謝。
これが動作しない - 'INSTEAD OF'が本当に意味' INSTEAD OF' - 更新する行が存在しない第1トリガ起動ので(なしトリガーに自分自身を挿入しない限り行は挿入されません)。 "それはコンパイルされました!"または "デバッガをバーフにしませんでした"〜=意図したとおりに動作します。 –
私は本当にたくさんの回避策を試しました。今私は以下の答えに取り組んでいます – Diaman