gpt4 book ai didi

sql-server - SQL Server 2000 删除带有约束的列

转载 作者:行者123 更新时间:2023-12-03 03:11:59 25 4
gpt4 key购买 nike

我遇到了与this question中描述的相同的问题,但这是 SQL Server 2005,“接受”的答案在 SQL Server 2000 中不起作用。

具体来说:我正在尝试运行ALTER TABLE foo DROP COLUMN bar,但它失败了,因为存在“默认约束”。这意味着,我在该列上有一个默认值,SQL Server 将其实现为一个单独的约束,我需要先将其删除。

问题是创建列时没有为默认约束指定名称,因此我必须查询系统表以发现约束的(自动生成的)名称。

其他问题中给出的答案适用于 SQL Server 2005,但不适用于 SQL Server 2000。我需要后者。

[更新]我需要一个查询来回答这个问题“表foo”中列bar的默认约束的名称是什么>。”这不是人类手动查找答案的方法。

最佳答案

刚刚弄清楚引用的 SQL 2005 查询实际上在做什么。下面是在 SQL 2000 中运行的该查询的复制

select 
col.name,
col.colorder,
col.cdefault,
OBJECTPROPERTY(col.cdefault, N'IsDefaultCnst') as is_defcnst,
dobj.name as def_name
from syscolumns col
left outer join sysobjects dobj
on dobj.id = col.cdefault and dobj.type = 'D'
where col.id = object_id(N'dbo.table_name')
and dobj.name is not null

关于sql-server - SQL Server 2000 删除带有约束的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com