プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
SQL Server の世界では、データベース トリガーは、特定のデータベース操作が発生したときにコードを自動的に実行する強力なツールです。これらはデータベースの「イベント リスナー」と考えることができ、データが挿入、更新、または削除されるときに事前定義されたロジックをトリガーします。この記事では、SQL Server のデータベース トリガーのさまざまなアプリケーション シナリオを検討し、実用的なコード例を示します。
データベース トリガーは、テーブルに関連付けられた特殊なストアド プロシージャで、データ変更操作 (INSERT、UPDATE、DELETE) が発生したときに自動的に実行できます。トリガーは、監査、データ整合性の保守、カスケード更新、その他のシナリオで使用できます。
トリガーを使用すると、データベース操作の詳細なログを記録できます。これは、データベース アクティビティの監査と監視に不可欠です。
サンプルコード: 更新操作を記録するためのトリガーを作成します
CREATE TRIGGER trgAuditUpdate
ON YourTable
AFTER UPDATE
AS
BEGIN
INSERT INTO AuditLog(TableName, PrimaryKeyColumn, OldValue, NewValue, UpdateTime)
SELECT 'YourTable', p.YourPrimaryKeyColumn,
inserted.YourColumn, deleted.YourColumn, GETDATE()
FROM inserted i
INNER JOIN deleted d ON i.YourPrimaryKeyColumn = d.YourPrimaryKeyColumn;
END;
トリガーは複雑なビジネス ルールを強制して、データの整合性と一貫性を確保できます。
サンプルコード:データの有効性をチェックするためのトリガーを作成します
CREATE TRIGGER trgCheckData
ON YourTable
BEFORE INSERT, UPDATE
AS
BEGIN
IF (SELECT COUNT(*) FROM inserted WHERE YourConditionColumn <> 'ExpectedValue') > 0
BEGIN
RAISERROR ('Data validation failed.', 16, 1);
ROLLBACK TRANSACTION;
END
END;
トリガーはカスケード操作を実装して、1 つのテーブルのデータが変更されたときに関連テーブルのデータを自動的に更新または削除できます。
サンプルコード: カスケード更新のトリガーを作成します。
CREATE TRIGGER trgCascadeUpdate
ON ParentTable
AFTER UPDATE
AS
BEGIN
IF UPDATE(YourForeignKeyColumn)
BEGIN
UPDATE ChildTable
SET ChildTable.YourForeignKeyColumn = inserted.YourPrimaryKeyColumn
FROM inserted
WHERE ChildTable.YourForeignKeyColumn = deleted.YourPrimaryKeyColumn;
END
END;
トリガーはデータを自動的に入力または計算できるため、アプリケーションの負担が軽減されます。
サンプルコード:タイムスタンプを自動的に入力するためのトリガーを作成します
CREATE TRIGGER trgAutoFillTimestamp
ON YourTable
BEFORE INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE YourTable
SET CreationDate = GETDATE()
FROM inserted;
END;
トリガーを使用してデータを他のシステムまたはサービスに同期し、データのリアルタイム共有を実現できます。
サンプルコード: データを同期するためのトリガーを作成します (擬似コード)
CREATE TRIGGER trgSyncData
ON YourTable
AFTER INSERT
AS
BEGIN
-- 调用外部API或服务同步数据
EXEC SyncDataService @Data = (SELECT * FROM inserted);
END;
SQL Server のデータベース トリガーは、監査、データ整合性の維持、カスケード操作、自動データ入力、データ同期などのさまざまなシナリオに適した多機能自動化ツールです。トリガーを適切に使用すると、データベースの自動化レベルとビジネス ロジックの実行効率が大幅に向上します。
知らせ : トリガーの設計が不適切だと、パフォーマンスの問題、ロジックの複雑さ、およびデバッグが困難な問題が発生する可能性があるため、トリガーを使用する場合は注意が必要です。トリガーを設計する前に、その必要性と潜在的な影響を十分に評価する必要があります。さらに、サンプル コードを特定のデータベース アーキテクチャとビジネス ニーズに適合させる必要があります。