sql server 中删除默认约束的通用sql脚本

作者:sealyu 来源:BlogJava 时间:2009-02-01 17:23:00 

在SQL Server 中,如果给表的一个字段设置了默认值,就会在系统表sysobjects中生成一个默认约束。
如果想删除这个设置了默认值的字段(假设此字段名column1),执行“ALTER TABLE table1 DROP COLUMN column1”时就会报错:

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

所以在删除此字段时需要先将系统表中的对应默认约束删除, 可以使用下面的脚本进行删除:


-- 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)

           

在删除对应的默认约束后,执行:

ALTER TABLE table1 DROP COLUMN column1

即可删除字段。

标签:
0
投稿

猜你喜欢

  • python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解

    2021-05-20 08:43:26
  • python数据分析基础知识之shape()函数的使用教程

    2023-06-11 04:03:56
  • php flv视频时间获取函数

    2023-09-04 13:41:48
  • 举例讲解Linux系统下Python调用系统Shell的方法

    2023-08-25 00:04:46
  • 在IPython中执行Python程序文件的示例

    2023-02-20 09:06:14
  • Pytho常见的数据可视化库,小白必备

    2022-08-04 15:21:13
  • 利用python解决mysql视图导入导出依赖的问题

    2023-10-28 07:27:38
  • python基于celery实现异步任务周期任务定时任务

    2021-06-14 05:20:26
  • MySQL利用profile分析慢sql详解(group left join效率高于子查询)

    2024-01-18 02:16:18
  • 用python实现域名资产监控的详细步骤

    2021-12-05 07:52:49
  • Golang使用ini库读取配置详情

    2023-07-02 07:46:56
  • 详解Python 多线程 Timer定时器/延迟执行、Event事件

    2022-09-04 11:12:52
  • Python全栈之正则表达式

    2022-09-12 16:17:09
  • Python编程应用设计原则详解

    2021-04-08 20:13:05
  • 教你怎么用Python实现自动生日祝福

    2022-04-08 01:03:25
  • 浅析Python中的多进程与多线程的使用

    2021-07-27 11:12:20
  • javascript验证只能输入数字和一个小数点示例

    2024-04-22 22:29:11
  • 教你如何在Pytorch中使用TensorBoard

    2022-02-22 17:55:46
  • 使用python开发vim插件及心得分享

    2023-11-22 11:30:32
  • 使用python爬取taptap网站游戏截图的步骤

    2021-09-17 07:44:34
  • asp之家 网络编程 m.aspxhome.com