DROP DEFAULT (Transact-SQL)
從目前資料庫移除一或多個使用者自訂的預設值。
重要事項 |
---|
在下一個 MicrosoftSQL Server 版本中,將移除 DROP DEFAULT。請勿在新的開發工作中使用 DROP DEFAULT,並規劃修改目前使用 DROP DEFAULT 的應用程式。請改用預設定義,您可以利用 ALTER TABLE 或 CREATE TABLE 的 DEFAULT 關鍵字來建立預設定義。如需詳細資訊,請參閱<建立和修改 DEFAULT 定義>。 |
語法
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