我在我的表中的列其中有一個默認值約束「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