次の方法で共有


DML トリガーの変更または名前の変更

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 の DML トリガーを変更または名前変更する方法について説明します。

このトピックについて

開始する前に

制限事項と制約条件

  • トリガーの名前を変更する場合、トリガーは現在のデータベースに存在し、新しい名前は 識別子の規則に従う必要があります。

推奨事項

  • sp_rename ストアド プロシージャを使用してトリガーの名前を変更しないことをお勧めします。 オブジェクト名の一部または全部を変更すると、スクリプトおよびストアド プロシージャが壊れる可能性があります。 トリガーの名前を変更しても、 sys.sql_modules カタログ ビューの定義列の対応するオブジェクト名の名前は変更されません。 代わりに、トリガーを削除して再作成することをお勧めします。

  • DML トリガーによって参照されるオブジェクトの名前を変更する場合は、テキストに新しい名前が反映されるようにトリガーを変更する必要があります。 したがって、オブジェクトの名前を変更する前に、オブジェクトの依存関係を最初に表示して、提案された変更によってトリガーが影響を受けるかどうかを判断します。

  • DML トリガーは、その定義を暗号化するように変更することもできます。

  • トリガーの依存関係を表示するには、SQL Server Management Studio または次の関数ビューとカタログ ビューを使用できます。

安全

権限

DML トリガーを変更するには、トリガーが定義されているテーブルまたはビューに対する ALTER 権限が必要です。

SQL Server Management Studio の使用

DML トリガーを変更するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. 目的のデータベースを展開し、[ テーブル] を展開し、変更するトリガーを含むテーブルを展開します。

  3. [ トリガー] を展開し、変更するトリガーを右クリックし、[ 変更] をクリックします。

  4. トリガーを変更し、[ 実行] をクリックします。

DML トリガーの名前を変更するには

  1. 名前を変更するトリガーを削除します

  2. 新しい名前を指定して、トリガーを再作成します。

Transact-SQL の使用

ALTER TRIGGER を使用してトリガーを変更するには

  1. データベース エンジンに接続します。

  2. [標準] バーから、新しいクエリをクリックします。

  3. 次の例をコピーしてクエリに貼り付けます。 最初の例を実行して、ユーザーが SalesPersonQuotaHistory テーブルのデータを追加または変更しようとしたときに、ユーザー定義メッセージをクライアントに出力する DML トリガーを作成します。 ALTER TRIGGER ステートメントを実行して、INSERTアクティビティでのみ発生するようにトリガーを変更します。 このトリガーは、 Compensation 部門にも通知するために、このテーブルに行を更新または挿入することをユーザーに通知するため便利です。

USE AdventureWorks2012;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
USE AdventureWorks2012;  
GO  
ALTER TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
AFTER INSERT  
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  

DROP TRIGGER と ALTER TRIGGER を使用してトリガーの名前を変更するには

  1. データベース エンジンに接続します。

  2. [標準] バーから、新しいクエリをクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、 DROP TRIGGER ステートメントと ALTER TRIGGER ステートメントを使用して、 Sales.bonus_reminder トリガーの名前を Sales.bonus_reminder_2 に変更します。

USE AdventureWorks2012;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder_2  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  

こちらもご覧ください

CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_rename (Transact-SQL)
トリガーを変更 (Transact-SQL)
DML トリガーに関する情報を取得する
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL) サーバートリガーイベント
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)