sp_unbindefault (Transact-SQL)

適用対象:SQL Server

現在のデータベースの列または別名データ型から、デフォルトをバインド解除 (削除) します。

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに、ALTER TABLE ステートメントまたは CREATE TABLE ステートメントで DEFAULT キーワード (keyword)を使用して、既定の定義を作成することをお勧めします。

Transact-SQL 構文表記規則

構文

sp_unbindefault
    [ @objname = ] N'objname'
    [ , [ @futureonly = ] 'futureonly' ]
[ ; ]

引数

[ @objname = ] N'objname'

テーブルと列の名前、または既定値がバインド解除される別名データ型。 @objnameは nvarchar(776)で、既定値はありません。 SQL Server は、最初に 2 部構成の識別子を列名に解決し、次にデータ型のエイリアスを作成しようとします。

別名データ型から既定値のバインドを解除すると、そのデータ型の同じ既定値を持つ列もバインド解除されます。 ただし、同じデータ型でも、デフォルトが直接バインドされている列は影響を受けません。

Note

@objnameは、角かっこを[]区切り識別子文字として含めることができます。 詳細については、「データベース識別子」を参照してください。

[ @futureonly = ] 'futureonly'

エイリアス データ型から既定値のバインドを解除する場合にのみ使用されます。 @futureonlyは varchar(15) で、既定値は NULL. @futureonlyfutureonly場合、データ型の既存の列では、指定した既定値は失われません。

リターン コードの値

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

解説

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

アクセス許可

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

A. 列から既定値のバインドを解除する

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

EXEC sp_unbindefault 'employees.hiredate';

B. エイリアス データ型から既定値のバインドを解除する

次の例では、別名データ型の ssn からデフォルトをバインド解除します。 その型の既存の列と将来の列のバインドを解除します。

EXEC sp_unbindefault 'ssn';

C: futureonly_flagを使用する

次の例では、既存ssnの列に影響を与えずに、エイリアス データ型ssnの将来の使用をバインド解除します。

EXEC sp_unbindefault 'ssn', 'futureonly';

D. 区切り記号付き識別子を使用する

次の例は、パラメーターでの区切り識別子の 使用@objname 示しています。 テーブル名の一部としてピリオドに注目してください。 この sp_unbindefault 部分では、オブジェクトに 2 つのピリオドが含まれています。1 つ目はテーブル名の一部で、2 番目の部分はテーブル名と列名を区別します。

-- 
CREATE TABLE [t.3] (c1 INT);

CREATE DEFAULT default2 AS 0;
GO

EXEC sp_bindefault 'default2', '[t.3].c1';

EXEC sp_unbindefault '[t.3].c1';