DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKCONSTRAINTS检查当前数据库中指定表上的指定约束或所有约束的完整性

检查当前数据库中指定表上的指定约束或所有约束的完整性。

 Transact-SQL 语法约定

语法

DBCC CHECKCONSTRAINTS
[ 
        ( 
        table_name | table_id | constraint_name | constraint_id 
        )
]
    [ WITH 
        [ { ALL_CONSTRAINTS | ALL_ERRORMSGS } ]
    [ , ] [ NO_INFOMSGS ] 
    ]
参数

table_name |  table_id |  constraint_name |  constraint_id

要检查的表或约束。如果指定了 table_name 或 table_id,将对该表中所有启用的约束进行检查。如果指定了 constraint_name 或 constraint_id,则只对该约束进行检查。如果表标识符或约束标识符都未指定,则对当前数据库中所有表上的已启用约束进行检查。

约束名称唯一地标识其所属于的表。有关详细信息,请参阅标识符。

WITH

启用要指定的选项

ALL_CONSTRAINTS

如果指定了表名或检查所有的表,则对表上所有启用及禁用的约束进行检查;否则,仅对启用的约束进行检查。如果指定了约束名,则 ALL_CONSTRAINTS 无效。

ALL_ERRORMSGS

返回所检查的表中违反约束的所有行。默认为前 200 行。

NO_INFOMSGS

取消显示所有信息性消息。

注释

DBCC CHECKCONSTRAINTS 构造并执行一个对表的所有 FOREIGN KEY 和 CHECK 约束的查询。

例如,外键查询可具有如下形式:

SELECT <columns>
FROM <table_being_checked> LEFT JOIN <referenced_table>
    ON <table_being_checked.fkey1> = <referenced_table.pkey1> 
    AND <table_being_checked.fkey2> = <referenced_table.pkey2>
WHERE <table_being_checked.fkey1> IS NOT NULL 
    AND <referenced_table.pkey1> IS NULL
    AND <table_being_checked.fkey2> IS NOT NULL
    AND <referenced_table.pkey2> IS NULL

查询数据存储在临时表中。检查完所有请求的表和约束后,将返回结果集。

DBCC CHECKCONSTRAINTS 检查 FOREIGN KEY 和 CHECK 约束的完整性,但并不检查表的磁盘上数据结构的完整性。可使用 DBCC CHECKDB 和 DBCC CHECKTABLE 执行这些数据结构检查。

结果集

DBCC CHECKCONSTRAINTS 返回带有以下列的行集。

列名

数据类型

说明

Table Name

varchar

表的名称。

Constraint Name

varchar

违反的约束名。

Where

varchar

标识违反约束的行的列值分配。

该列中的值可以用于 SELECT 语句(用于查询违反约束的行)的 WHERE 子句中。

权限

要求拥有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。

示例

A. 检查表

以下示例检查 AdventureWorks2008R2 数据库中的 Table1 表的约束完整性。

Transact-SQL
USE AdventureWorks2008R2;
GO
CREATE TABLE Table1 (Col1 int, Col2 char (30));
GO
INSERT INTO Table1 VALUES (100, 'Hello');
GO
ALTER TABLE Table1 WITH NOCHECK ADD CONSTRAINT chkTab1 CHECK (Col1 > 100);
GO
DBCC CHECKCONSTRAINTS(Table1);
GO


B. 检查特定约束

以下示例检查 CK_ProductCostHistory_EndDate 约束的完整性。

Transact-SQL
USE AdventureWorks2008R2;
GO
DBCC CHECKCONSTRAINTS ("Production.CK_ProductCostHistory_EndDate");
GO


C. 检查所有表的所有启用和禁用的约束

以下示例检查当前数据库中所有表上的所有启用和禁用约束的完整性。

Transact-SQL
DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;
GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值