DROP DEFAULT (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
從目前資料庫移除一或多個使用者自訂的預設值。
重要
下一版的 Microsoft SQL Server 將會除 DROP DEFAULT。 請勿在新的開發工作中使用 DROP DEFAULT,並規劃修改目前使用 DROP DEFAULT 的應用程式。 請改用預設定義,您可以利用 ALTER TABLE 或 CREATE TABLE 的 DEFAULT 關鍵字來建立預設定義。
語法
DROP DEFAULT [ IF EXISTS ] { [ schema_name . ] default_name } [ ,...n ] [ ; ]
引數
IF EXISTS
適用於:SQL Server (SQL Server 2016 (13.x) 到最新版本)。
只有在預設值已存在時,才能有條件地將其卸除。
schema_name
這是預設值所屬的結構描述名稱。
default_name
這是現有預設值的名稱。 若要查看存在的預設清單,請執行 sp_help。 預設必須符合識別碼的規則。 您可以選擇性地指定預設結構描述名稱。
備註
在卸除預設之前,如果預設目前繫結到資料行或別名資料類型,請執行 sp_unbindefault 來解除預設的繫結。
在從允許 Null 值的資料行中卸除預設值之後,當加入資料列且未明確提供值時,會在這個位置插入 NULL。 從 NOT NULL 資料行中卸除預設值之後,當加入資料列且未明確提供值時,會傳回錯誤訊息。 稍後,會做為一般 INSERT 陳述式行為的一部份而加入這些資料列。
權限
若要執行 DROP DEFAULT,使用者至少必須有預設值所屬結構描述的 ALTER 權限。
範例
A. 卸除預設值
如果預設值尚未繫結到資料行或別名資料類型,只能利用 DROP DEFAULT 來卸除它。 下列範例會移除名稱為 datedflt
的使用者建立預設值。
USE AdventureWorks2022;
GO
IF EXISTS (SELECT name FROM sys.objects
WHERE name = 'datedflt'
AND type = 'D')
DROP DEFAULT datedflt;
GO
從 SQL Server 2016 (13.x) 開始,可以使用下列語法。
DROP DEFAULT IF EXISTS datedflt;
GO
B. 卸除已繫結到資料行的預設值
下列範例會將預設值和相關聯之 EmergencyContactPhone
資料表的 Contact
資料行解除繫結,再卸除名稱為 phonedflt
的預設值。
USE AdventureWorks2022;
GO
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)