我在我的表中的列其中有一个默认值约束“DF_DOC_DMA_PLACE_1_dma_id”SQL默认值约束INFORMATION_SCHEMA
我想丢弃列,但首先我需要丢弃的约束。问题是这个表驻留在许多数据库中,并且在其中一些约束中不存在。如何首先检查约束是否存在,然后删除它?
我知道INFORMATION_SCHEMA中的视图,但我无法找到具有此约束的视图?你能告诉我默认值约束所在的位置吗?由于
我在我的表中的列其中有一个默认值约束“DF_DOC_DMA_PLACE_1_dma_id”SQL默认值约束INFORMATION_SCHEMA
我想丢弃列,但首先我需要丢弃的约束。问题是这个表驻留在许多数据库中,并且在其中一些约束中不存在。如何首先检查约束是否存在,然后删除它?
我知道INFORMATION_SCHEMA中的视图,但我无法找到具有此约束的视图?你能告诉我默认值约束所在的位置吗?由于
请使用以下查询找到一个每个表的默认约束。
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 = 'DEFAULT_CONSTRAINT'
尝试基于你会发现这个东西是什么...
select t.name as 'table', c.[name] as 'column' ,dc.[name],dc.[definition]
from sys.tables as t
join sys.columns as c on (c.[object_id] = t.[object_id])
join sys.default_constraints as dc on (dc.[object_id] = c.[default_object_id])
有没有办法列出使用上述列的任何存储过程? –
顺便说一句,只是一个提示:information_schema是sql服务器有的ANSI视图,如果你正在使用ms sql server,那么最好使用sys。视图,它们是仅限于sql-server的视图,并且在msdn上有详细记录) – fnurglewitz