国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

sql server 中刪除默認(rèn)約束的通用sql腳本

2024-08-31 00:46:20
字體:
供稿:網(wǎng)友

在SQL Server 中,如果給表的一個字段設(shè)置了默認(rèn)值,就會在系統(tǒng)表sysobjects中生成一個默認(rèn)約束。
如果想刪除這個設(shè)置了默認(rèn)值的字段(假設(shè)此字段名column1),執(zhí)行“ALTER TABLE table1 DROP COLUMN column1”時就會報錯:

以下為引用的內(nèi)容:

The object 'DF__xxxxxxxxxxx' is dependent on column 'column1'.
ALTER TABLE DROP COLUMN column1failed because one or more objects access this column.

所以在刪除此字段時需要先將系統(tǒng)表中的對應(yīng)默認(rèn)約束刪除, 可以使用下面的腳本進(jìn)行刪除:

以下為引用的內(nèi)容:

-- this script drops the default constraint which is generated by the setting of default value.
DECLARE @tablename VARCHAR(100), @columnname VARCHAR(100), @tab VARCHAR(100)
SET @tablename='CountryGroupEmailAndWaitAux'
SET @columnname='actionOfHasNoValidEmail'

declare @defname varchar(100)
declare @cmd varchar(100)

select @defname = name
FROM sysobjects so
JOIN sysconstraints sc
ON so.id = sc.constid
WHERE object_name(so.parent_obj) = @tablename
AND so.xtype = 'D'
AND sc.colid =
(SELECT colid FROM syscolumns
WHERE id = object_id(@tablename) AND
name = @columnname)

select @cmd='alter table ' @tablename ' drop constraint ' @defname
if @cmd is null print 'No default constraint to drop'
exec (@cmd)

在刪除對應(yīng)的默認(rèn)約束后,執(zhí)行:

ALTER TABLE table1 DROP COLUMN column1

即可刪除字段。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霞浦县| 澜沧| 宜丰县| 永清县| 延安市| 辽中县| 错那县| 成安县| 双牌县| 湘潭市| 萨嘎县| 九寨沟县| 密云县| 九江市| 泉州市| 阜新市| 屯留县| SHOW| 敦煌市| 石首市| 黔东| 吉林市| 绵阳市| 肥东县| 洪雅县| 古交市| 南城县| 虎林市| 济南市| 高要市| 潞西市| 班玛县| 中宁县| 华宁县| 巴马| 东山县| 湛江市| 永胜县| 沧州市| 阿鲁科尔沁旗| 沐川县|