從當(dāng)前數(shù)據(jù)庫(kù)中刪除一個(gè)或多個(gè)用戶定義的默認(rèn)值。
DROP DEFAULT 語(yǔ)句不適用于 DEFAULT 約束。有關(guān)除去 DEFAULT 約束(通過(guò)使用 CREATE TABLE 或 ALTER TABLE 語(yǔ)句的 DEFAULT 選項(xiàng)所創(chuàng)建)的更多信息,請(qǐng)參見(jiàn)本卷中的"ALTER TABLE"。
DROP DEFAULT { default } [ ,...n ]
default
是現(xiàn)有默認(rèn)值的名稱。若要查看現(xiàn)有默認(rèn)值的列表,請(qǐng)執(zhí)行 sp_help。默認(rèn)值必須符合標(biāo)識(shí)符規(guī)則。有關(guān)更多信息,請(qǐng)參見(jiàn)使用標(biāo)識(shí)符??梢赃x擇是否指定默認(rèn)值所有者名稱。
n
是表示可以指定多個(gè)默認(rèn)值的占位符。
除去默認(rèn)之前,通過(guò)執(zhí)行 sp_unbindefault 解除綁定默認(rèn)值(如果默認(rèn)值當(dāng)前綁定到列或用戶定義的數(shù)據(jù)類型)。
從允許空值的列中除去默認(rèn)值后,當(dāng)添加行且沒(méi)有顯式提供值時(shí),將在那個(gè)位置插入 NULL。從 NOT NULL 列中除去默認(rèn)值后,當(dāng)添加行且沒(méi)有顯式提供值時(shí),將返回錯(cuò)誤信息。這些行以后作為標(biāo)準(zhǔn) INSERT 語(yǔ)句行為的一部分添加。
默認(rèn)情況下,將 DROP DEFAULT 權(quán)限授予默認(rèn)值所有者,該權(quán)限不可轉(zhuǎn)讓。然而,db_owner 和 db_ddladmin 固定數(shù)據(jù)庫(kù)角色成員以及 sysadmin 固定服務(wù)器角色成員可以通過(guò)在 DROP DEFAULT 中指定所有者除去任何默認(rèn)對(duì)象。
如果默認(rèn)值沒(méi)有綁定到列或用戶定義的數(shù)據(jù)類型,可以很容易地使用 DROP DEFAULT 將其除去。下例刪除用戶創(chuàng)建的名為 datedflt 的默認(rèn)值。
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'datedflt'
AND type = 'D')
DROP DEFAULT datedflt
GO
下例解除綁定與 authors 表的 phone 列關(guān)聯(lián)的默認(rèn)值,然后除去名為 phonedflt 的默認(rèn)值。
USE pubs相關(guān)文章
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'phonedflt'
AND type = 'D')
BEGIN
EXEC sp_unbindefault 'authors.phone'
DROP DEFAULT phonedflt
END
GO