首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在T-SQL中删除默认值或类似的约束?

如何在T-SQL中删除默认值或类似的约束?
EN

Stack Overflow用户
提问于 2009-07-14 01:43:01
回答 4查看 49.4K关注 0票数 70

我知道它的语法:

代码语言:javascript
复制
ALTER TABLE [TheTable] DROP CONSTRAINT [TheDefaultConstraint]

但是,当我不知道默认约束的名称时,如何删除它呢?(也就是说,它是在CREATE TABLE时间自动生成的。)

EN

回答 4

Stack Overflow用户

发布于 2012-05-26 00:46:47

您可以使用以下代码自动完成此操作:

代码语言:javascript
复制
DECLARE @tableName VARCHAR(MAX) = '<MYTABLENAME>'
DECLARE @columnName VARCHAR(MAX) = '<MYCOLUMNAME>'
DECLARE @ConstraintName nvarchar(200)
SELECT @ConstraintName = Name 
FROM SYS.DEFAULT_CONSTRAINTS
WHERE PARENT_OBJECT_ID = OBJECT_ID(@tableName) 
AND PARENT_COLUMN_ID = (
    SELECT column_id FROM sys.columns
    WHERE NAME = @columnName AND object_id = OBJECT_ID(@tableName))
IF @ConstraintName IS NOT NULL
    EXEC('ALTER TABLE '+@tableName+' DROP CONSTRAINT ' + @ConstraintName)

只需适当地替换<MYTABLENAME><MYCOLUMNNAME>即可。

票数 66
EN

Stack Overflow用户

发布于 2009-07-14 01:47:23

您可以通过sp_help表名找到约束的名称,然后按名称删除它。

或者,您也可以通过Management studio完成此操作。

票数 4
EN

Stack Overflow用户

发布于 2009-07-14 01:48:55

或者,您可以使用sys.check_constraints目录视图找到它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1123060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档