次の方法で共有


DROP RULE (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

1 つ以上のユーザー定義のルールを現在のデータベースから削除します。

重要

DROP RULE は、将来のバージョンの SQL Server で削除される予定です。 新しい開発作業では DROP RULE を使用せず、現在使用しているアプリケーションを変更することを計画してください。 代わりに、CREATE TABLE または ALTER TABLECHECK キーワードを使用して作成できるCHECK制約を使用してください。 詳細については、「 Unique Constraints and Check Constraints」を参照してください。

Transact-SQL 構文表記規則

構文

DROP RULE [ IF EXISTS ] { [ schema_name . ] rule_name } [ , ...n ]
[ ; ]

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

IF EXISTS

適用対象: SQL Server 2016 (13.x) 以降のバージョン

条件付きでは既に存在する場合にのみ、ルールを削除します。

schema_name

ルールが属するスキーマの名前。

rule

削除するルール。 ルール名は、識別子の規則に従っている必要があります。 ルールのスキーマ名の指定は省略可能です。

注釈

ルールを削除するには、そのルールが列または別名データ型に現在バインドされている場合、まず、このバインドを解除します。 ルールのバインドを解除するには、 sp_unbindruleを使用します。 削除しようとしたときにルールがバインドされている場合は、エラー メッセージが表示され、 DROP RULE ステートメントが取り消されます。

ルールを削除すると、以前はそのルールに制御されていた列に新しいデータを入力しても、ルールの制約を受けなくなります。 既存のデータは、どのような影響も受けられません。

DROP RULE ステートメントは、CHECK制約には適用されません。 CHECK制約の削除の詳細については、ALTER TABLEを参照してください。

アクセス許可

DROP RULEを実行するには、少なくとも、ルールが属するスキーマに対するALTER権限がユーザーに付与されている必要があります。

次の例では、VendorID_rule というルールのバインドを解除し、削除します。

EXEC sp_unbindrule 'Production.ProductVendor.VendorID';
DROP RULE VendorID_rule;