动机 - 每当添加未命名的约束时,我都希望我们的门控签入失败。
我在 Sql Server 中找不到未命名约束的任何专用名称。所以,这取决于模式匹配,我可以在 C# 中完成。
但模式是什么?涵盖大多数情况的最简单方法是检查“__”,但它并不是 100% 可靠。
那么,如何检查约束是否已根据其名称显式命名并具有对 sys 表的完全访问权限?
另一种甚至更好的解决方案是,如果有一种方法可以首先禁用未命名的约束,但仅限于当前会话。
我在中找不到任何未命名约束的专用名称
数据库服务器
它就在那里。您可以使用下面的
WITH T
AS (SELECT is_system_named, name, type_desc
FROM sys.check_constraints
UNION ALL
SELECT is_system_named, name, type_desc
FROM sys.default_constraints
UNION ALL
SELECT is_system_named, name, type_desc
FROM sys.key_constraints
UNION ALL
SELECT is_system_named, name, type_desc
FROM sys.foreign_keys)
SELECT name,
type_desc
FROM T
WHERE is_system_named = 'true'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)