gpt4 book ai didi

sql-server - 如何检查Sql服务器中是否存在约束?

转载 作者:行者123 更新时间:2023-12-01 16:22:09 24 4
gpt4 key购买 nike

我有这个sql:

ALTER TABLE dbo.ChannelPlayerSkins
DROP CONSTRAINT FK_ChannelPlayerSkins_Channels

但显然,在我们使用的其他一些数据库上,约束具有不同的名称。如何检查是否存在名为 FK_ChannelPlayerSkins_Channels 的约束。

最佳答案

试试这个:

SELECT
*
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME ='FK_ChannelPlayerSkins_Channels'

--编辑--

当我最初回答这个问题时,我在想“外键”,因为最初的问题询问如何查找“FK_ChannelPlayerSkins_Channels”。从那时起,许多人就寻找其他“约束”发表了评论,这里有一些其他查询:

--Returns one row for each CHECK, UNIQUE, PRIMARY KEY, and/or FOREIGN KEY
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_NAME='XYZ'


--Returns one row for each FOREIGN KEY constrain
SELECT *
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME='XYZ'


--Returns one row for each CHECK constraint
SELECT *
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS
WHERE CONSTRAINT_NAME='XYZ'

这是另一种方法

--Returns 1 row for each CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY, and/or DEFAULT
SELECT
OBJECT_NAME(OBJECT_ID) AS NameofConstraint
,SCHEMA_NAME(schema_id) AS SchemaName
,OBJECT_NAME(parent_object_id) AS TableName
,type_desc AS ConstraintType
FROM sys.objects
WHERE type_desc LIKE '%CONSTRAINT'
AND OBJECT_NAME(OBJECT_ID)='XYZ'

如果您需要更多约束信息,请查看系统存储过程master.sys.sp_helpconstraint以了解如何获取某些信息。要使用 SQL Server Management Studio 查看源代码,请进入“对象资源管理器”。从那里展开“主”数据库,然后展开“可编程性”,然后展开“存储过程”,然后展开“系统存储过程”。然后您可以找到“sys.sp_helpconstraint”并右键单击它并选择“修改”。只是要小心不要保存任何更改。此外,您可以在任何表上使用此系统存储过程,例如 EXEC sp_helpconstraint YourTableNameHere

关于sql-server - 如何检查Sql服务器中是否存在约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2499332/

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