0

テーブルにデフォルト値の制約'DF_DOC_DMA_PLACE_1_dma_id'を持つ列があります

その列を削除したいのですが、最初にその制約を削除する必要があります。問題は、このテーブルが多くのデータベースに存在し、それらの一部には制約が存在しないことです。最初に制約が存在するかどうかを確認してから削除するにはどうすればよいですか?

INFORMATION_SCHEMAのビューを認識していますが、この制約のあるビューが見つかりませんか?デフォルト値の制約がどこにあるか教えてもらえますか?ありがとう

4

2 に答える 2

2

次のクエリを使用して、すべてのテーブルの既定の制約を見つけてください。

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'
于 2012-11-14T11:50:47.710 に答える
1

これで見つけたものに基づいて何かを試してみてください...

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])
于 2012-11-14T11:49:46.397 に答える