Sqlserver 停用與啟用條件約束

sqlserver 停用與啟用條件約束

紀錄停用與啟用條件約束的 sql ,還有檢查目前資料表條件約束的語法

語法

全部條件約束停用

1
2
3
-- 全部條件約束停用
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO

刪除全部資料表資料

1
2
3
-- 刪除全部資料表資料
EXEC sp_MSForEachTable "DELETE FROM ?"
GO

全部資料表增值索引重設

1
2
3
-- 全部資料表增值索引重設
EXEC sp_MSforeachtable "DBCC CHECKIDENT('?', RESEED, 0)"
Go

全部條件約束啟用

1
2
3
-- 全部條件約束啟用
EXEC sp_MSforeachtable "ALTER TABLE ? WITH NOCHECK CHECK CONSTRAINT ALL"
GO

檢查目前資料表條件約束狀態的語法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT f.NAME         N'物件名稱',
is_disabled N'已停用(1)',
is_not_trusted N'不檢查現有資料(1)',
s.NAME N'結構描述',
o.NAME N'外部索引資料表',
sc.NAME N'結構描述',
r.NAME N'主索引資料表',
delete_referential_action_desc
N'在進行刪除時,宣告的參考動作之描述',
update_referential_action_desc
N'在進行更新時,宣告的參考動作之描述',
f.type_desc N'物件描述'
FROM sys.foreign_keys f
INNER JOIN sys.objects o
ON f.parent_object_id = o.object_id
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
INNER JOIN sys.objects r
ON f.referenced_object_id = r.object_id
INNER JOIN sys.schemas sc
ON r.schema_id = sc.schema_id
ORDER BY o.NAME
GO

參考資料