0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL Serverのトリガーを作成する時に知っておけばよかったこと

Posted at

1. はじめに

  • SQL Serverでトリガーを作成する時に躓いたことをメモしておきます

2. 開発環境

  • SQL Server 2022
  • Windows 11

3. SET ANSI_NULLS ON

  • ANSI_NULLS が ON に設定されていると、NULL 値に対するすべての比較は UNKNOWN に評価されます。
  • 一般的にはONにするようですが、OFFでトリガーを作っていました。

image.png

3. SET QUOTED_IDENTIFIER ON

  • SQLを識別子は二重引用符 ("") で区切ることができます。
  • 一般的にはONにするようですが、設定があることをしらず二重引用符 ("") は使っていませんでした。

SELECT "id",
    "name" 
FROM
    "table";

4. CREATE OR ALTER

  • 未定義のDBオブジェクトに対してはCREATE文として、定義済みのDBオブジェクトに対してはALTER文として動作します。
  • SQL Server 2016 Service Pack 1以降で利用可能のようです。
  • トリガーを更新する時に毎回DROPしてCREATEしていましたが、これで解決しました。
CREATE OR ALTER PROCEDURE [dbo].[テーブル名]
AS
BEGIN
 (省略)
END
GO

5. ALTER TABLE [テーブル名] ENABLE/DISABLE TRIGGER

  • あるテーブルの特定のトリガーの有効化(enable)/無効化(disable)します。
  • トリガーの状態を変更する方法がわかっていませんでした。
-- トリガーを有効化する場合
ALTER TABLE [テーブル名] ENABLE TRIGGER [トリガー名];
-- トリガーを無効化する場合
ALTER TABLE [テーブル名] DISABLE TRIGGER [トリガー名];

6. 参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?