gpt4 book ai didi

sql - 如何使用 INFORMATION_SCHEMA 查找默认约束?

转载 作者:行者123 更新时间:2023-12-01 16:51:41 26 4
gpt4 key购买 nike

我正在尝试测试给定的默认约束是否存在。我不想使用 sysobjects 表,而是使用更标准的 INFORMATION_SCHEMA。

我之前用它来检查表和主键约束,但我在任何地方都没有看到默认约束。

他们不在吗? (我使用的是 MS SQL Server 2000)。

编辑:我正在寻找约束的名称。

最佳答案

据我了解,默认值约束不是 ISO 标准的一部分,因此它们不会出现在 INFORMATION_SCHEMA 中。 INFORMATION_SCHEMA 似乎是此类任务的最佳选择,因为它是跨平台的,但如果信息不可用,则应使用对象目录 View (sys.*) 而不是系统 TableView ,后者在 SQL Server 中已弃用2005 年及以后。

下面与@user186476的答案几乎相同。它返回给定列的默认值约束的名称。 (对于非 SQL Server 用户,您需要默认的名称才能删除它,如果您自己不命名默认约束,SQL Server 会创建一些疯狂的名称,例如“DF_TableN_Colum_95AFE4B5”。为了更容易更改将来您的架构中,请始终显式命名您的约束!)

-- returns name of a column's default value constraint 
SELECT
default_constraints.name
FROM
sys.all_columns

INNER JOIN
sys.tables
ON all_columns.object_id = tables.object_id

INNER JOIN
sys.schemas
ON tables.schema_id = schemas.schema_id

INNER JOIN
sys.default_constraints
ON all_columns.default_object_id = default_constraints.object_id

WHERE
schemas.name = 'dbo'
AND tables.name = 'tablename'
AND all_columns.name = 'columnname'

关于sql - 如何使用 INFORMATION_SCHEMA 查找默认约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141682/

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