Share via


DROP DEFAULT (Transact-SQL)

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

重要注意事項重要事項

在下一個 MicrosoftSQL Server 版本中,將移除 DROP DEFAULT。請勿在新的開發工作中使用 DROP DEFAULT,並規劃修改目前使用 DROP DEFAULT 的應用程式。請改用預設定義,您可以利用 ALTER TABLECREATE TABLE 的 DEFAULT 關鍵字來建立預設定義。如需詳細資訊,請參閱<建立和修改 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 AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.objects
         WHERE name = 'datedflt' 
            AND type = 'D')
   DROP DEFAULT datedflt
GO

B. 卸除已繫結到資料行的預設值

下列範例會將預設值和相關聯之 Employee 資料表的 EmergencyContactPhone 資料行解除繫結,再卸除名稱為 phonedflt 的預設值。

USE AdventureWorks;
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