Share via


DROP DEFAULT (Transact-SQL)

從目前資料庫移除一或多個使用者自訂的預設值。

重要事項重要事項

在下一個 Microsoft SQL Server 版本中,將移除 DROP DEFAULT。 請勿在新的開發工作中使用 DROP DEFAULT,並規劃修改目前使用 DROP DEFAULT 的應用程式。 請改用預設定義,您可以利用 ALTER TABLECREATE TABLE 的 DEFAULT 關鍵字來建立預設定義。

主題連結圖示 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)