sp_unbindrule (Transact-SQL)

現在のデータベース内の列または別名データ型のルールをバインド解除します。

ms190354.note(ja-jp,SQL.90).gif重要 :
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに、ALTER TABLE または CREATE TABLE ステートメントで DEFAULT キーワードを使って、デフォルト定義を作成することをお勧めします。詳細については、「DEFAULT 定義の作成と変更」を参照してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_unbindrule [ @objname = ] 'object_name' 
     [ , [ @futureonly = ] 'futureonly_flag' ]

引数

[ @objname= ] 'object_name'

ルールをバインド解除する、テーブルと列、または別名データ型の名前を指定します。object_name のデータ型は nvarchar(776) で、既定値はありません。SQL Server では、最初に列名に対して、次に別名データ型に対して、2 つの要素で構成される識別子の解決が試行されます。別名データ型のルールをバインド解除すると、指定したデータ型の列のルールがすべてバインド解除されます。ただし、同じデータ型でも、ルールが直接バインドされている列には影響はありません。

ms190354.note(ja-jp,SQL.90).gifメモ :
object_name には、識別子の区切り文字であるかっこ [] を含めることができます。詳細については、「区切られた識別子 (データベース エンジン)」を参照してください。

[ @futureonly= ] 'futureonly_flag'

別名データ型からルールをバインド解除する場合にのみ使用します。futureonly_flag のデータ型は varchar(15) で、既定値は NULL です。futureonly_flagfutureonly である場合、そのデータ型の既存の列に指定されているルールは解除されません。

解説

ルールのテキストを表示するには、ルール名をパラメータに使用して sp_helptext を実行します。

ルールをバインド解除すると、ルールが列にバインドしていた場合は sys.columns テーブルから、ルールが別名データ型にバインドしていた場合は sys.types テーブルから、バインドに関する情報が削除されます。

別名データ型からルールをバインド解除すると、その別名データ型のすべての列からも該当するルールがバインド解除されます。ALTER TABLE ステートメントで ALTER COLUMN 句を使用して、後からデータ型が変更された列にルールをバインドすることもできます。ただし、その列からルールをバインド解除するには、sp_unbindrule を使用して列名を指定する必要があります。

権限

テーブル列からルールをバインド解除するには、そのテーブルに対する ALTER 権限が必要です。別名データ型からルールをバインド解除するには、そのデータ型に対する CONTROL 権限、またはそのデータ型が属するスキーマに対する ALTER 権限が必要です。

戻り値

0 (成功) または 1 (失敗)

A. 列のルールをバインド解除する

次の例では、employees テーブルの startdate 列からルールをバインド解除します。

EXEC sp_unbindrule 'employees.startdate'

B. 別名データ型からルールをバインド解除する

次の例では、別名データ型 ssn からルールをバインド解除します。この例では、既存の列も今後入力される列もバインド解除されます。

EXEC sp_unbindrule ssn

C. futureonly_flag を使用する

次の例では、既存の ssn 列に影響を与えずに、別名データ型 ssn からルールをバインド解除します。

EXEC sp_unbindrule 'ssn', 'futureonly'

D. 区切り識別子を使用する

次の例では、object_name パラメータで区切り識別子を使用します。

CREATE TABLE [t.4] (c1 int) -- Notice the period as part of the table 
-- name.
GO
CREATE RULE rule2 AS @value > 100
GO
EXEC sp_bindrule rule2, '[t.4].c1' -- The object contains two 
-- periods; the first is part of the table name and the second 
-- distinguishes the table name from the column name.
GO
EXEC sp_unbindrule '[t.4].c1'

参照

関連項目

システム ストアド プロシージャ (Transact-SQL)
データベース エンジンのストアド プロシージャ (Transact-SQL)
CREATE RULE (Transact-SQL)
DROP RULE (Transact-SQL)
sp_bindrule (Transact-SQL)
sp_helptext (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手