次の方法で共有


DROP DEFAULT (Transact-SQL)

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

重要

DROP DEFAULT は、次期バージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、DROP DEFAULT の使用は避け、現在このオプションを使用しているアプリケーションは修正するようにしてください。代わりに、ALTER TABLE または CREATE TABLE の DEFAULT キーワードを使用して作成できるデフォルト定義を使用してください。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)

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

構文

DROP DEFAULT { [ schema_name . ] default_name } [ ,...n ] [ ; ]

引数

  • schema_name
    デフォルトが所属するスキーマの名前を指定します。

  • default_name
    既存のデフォルトの名前です。 既存のデフォルトの一覧を表示するには、sp_help を実行します。 デフォルトは、識別子の規則に従っている必要があります。 デフォルトのスキーマ名の指定は省略可能です。

説明

デフォルトが列または別名データ型にバインドされている場合は、デフォルトを削除する前に、sp_unbindefault を実行してデフォルトをアンバインドしてください。

NULL 値が許容される列からデフォルトを削除した後、行を追加しその値を明示的に指定しなかった場合、その位置には NULL が挿入されます。 NOT NULL 列からデフォルトを削除した後、行を追加しその値を明示的に指定しなかった場合は、エラー メッセージが返されます。 これらの行は、通常の INSERT ステートメントの動作の一部として後で追加されます。

権限

DROP DEFAULT を実行するには、少なくとも、デフォルトが属するスキーマに対する ALTER 権限が必要です。

使用例

A. デフォルトを削除する

デフォルトが列または別名データ型にバインドされていない場合は、DROP DEFAULT を使うだけで削除できます。 次の例では、ユーザーが作成したデフォルト datedflt を削除します。

USE AdventureWorks2012;
GO
IF EXISTS (SELECT name FROM sys.objects
         WHERE name = 'datedflt' 
            AND type = 'D')
   DROP DEFAULT datedflt;
GO

B. 列にバインドされたデフォルトを削除する

次の例では、Contact テーブルの EmergencyContactPhone 列に関連付けられているデフォルトをアンバインドし、デフォルト phonedflt を削除します。

USE AdventureWorks2012;
GO
IF EXISTS (SELECT name FROM sys.objects
         WHERE name = 'phonedflt' 
            AND type = 'D')
   BEGIN 
      EXEC sp_unbindefault 'Person.Contact.Phone'
      DROP DEFAULT phonedflt
   END;
GO

関連項目

参照

CREATE DEFAULT (Transact-SQL)

sp_helptext (Transact-SQL)

sp_help (Transact-SQL)

sp_unbindefault (Transact-SQL)