sp_unbindefault (Transact-SQL)
現在のデータベースの列または別名データ型から、デフォルトをバインド解除 (削除) します。
![]() |
---|
この機能は、Microsoft SQL Server の次のバージョンで削除されます。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。代わりに、ALTER TABLE または CREATE TABLE ステートメントで DEFAULT キーワードを使って、デフォルト定義を作成することをお勧めします。詳細については、「DEFAULT 定義の作成と変更」を参照してください。 |
構文
sp_unbindefault [ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
引数
[ @objname= ] 'object_name'
デフォルトをバインド解除する、テーブルと列、または別名データ型の名前を指定します。object_name のデータ型は nvarchar(776) で、既定値はありません。SQL Server では、最初に列名に対して、次に別名データ型に対して、2 つの要素で構成される識別子の解決が試行されます。別名データ型からデフォルトをバインド解除すると、そのデータ型の列で同じデフォルトが設定されている列もバインド解除されます。ただし、同じデータ型でも、デフォルトが直接バインドされている列は影響を受けません。
注意
object_name には、識別子の区切り文字であるかっこ [] を含めることができます。詳細については、「区切られた識別子 (データベース エンジン)」を参照してください。
[ @futureonly= ] 'futureonly_flag'
別名データ型からデフォルトをバインド解除する場合にのみ使用します。futureonly_flag のデータ型は varchar(15) で、既定値は NULL です。futureonly_flag が futureonly である場合、そのデータ型の既存の列から、指定されたデフォルトは削除されません。
戻り値
0 (成功) または 1 (失敗)
説明
デフォルトのテキストを表示するには、そのデフォルトの名前をパラメータとして sp_helptext を実行します。
権限
テーブルの列からデフォルトをバインド解除するには、そのテーブルに対する ALTER 権限が必要です。別名データ型からデフォルトをバインド解除するには、そのデータ型に対する CONTROL 権限、またはそのデータ型が属するスキーマに対する ALTER 権限が必要です。
例
A. 列からデフォルトをバインド解除する
次の例では、employees テーブルの hiredate 列からデフォルトをバインド解除します。
EXEC sp_unbindefault 'employees.hiredate'
B. 別名データ型からデフォルトをバインド解除する
次の例では、別名データ型の ssn からデフォルトをバインド解除します。この例では、既存の列も今後入力される列もバインド解除されます。
EXEC sp_unbindefault 'ssn'
C. futureonly_flag を使用する
次の例では、既存の ssn 列に影響を与えずに、今後使用される別名データ型の ssn をバインド解除します。
EXEC sp_unbindefault 'ssn', 'futureonly'
D. 区切り識別子を使用する
次の例では、object_name パラメータで区切り識別子を使用します。
CREATE TABLE [t.3] (c1 int) -- Notice the period as part of the table
-- name.
CREATE DEFAULT default2 AS 0
GO
EXEC sp_bindefault 'default2', '[t.3].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.
EXEC sp_unbindefault '[t.3].c1'