sp_unbindefault (Transact-SQL)
適用対象: SQL Server
現在のデータベースの列または別名データ型から、デフォルトをバインド解除 (削除) します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに、 ALTER TABLE または CREATE TABLE ステートメントで DEFAULT キーワードを使用して、既定の定義を作成することをお勧めします。
構文
sp_unbindefault
[ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
引数
[ @objname = ] N'objname'
テーブルと列の名前、または既定値がバインド解除される別名データ型。 @objname は nvarchar(776)で、既定値はありません。 SQL Server は、最初に 2 部構成の識別子を列名に解決し、次にデータ型のエイリアスを作成しようとします。
別名データ型から既定値のバインドを解除すると、そのデータ型の同じ既定値を持つ列もバインド解除されます。 ただし、同じデータ型でも、デフォルトが直接バインドされている列は影響を受けません。
Note
@objname は、区切り識別子文字として []
角かっこを含めることができます。 詳細については、「 Database 識別子」を参照してください。
[ @futureonly = ] 'futureonly'
エイリアス データ型から既定値のバインドを解除する場合にのみ使用されます。 @futureonly は varchar(15) で、既定値は NULL
です。 @futureonlyがfutureonly
されている場合、データ型の既存の列では、指定した既定値は失われません。
リターン コードの値
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';