REFERENTIAL_CONSTRAINTS (Transact-SQL)
Возвращает одну строку для каждого ограничения FOREIGN KEY в текущей базе данных. Это представление информационной схемы возвращает сведения об объектах, на которые у текущего пользователя есть разрешения.
Чтобы получить сведения из этих представлений, укажите полное имя INFORMATION_SCHEMA.view_name.
Имя столбца |
Тип данных |
Описание |
---|---|---|
CONSTRAINT_CATALOG |
nvarchar(128) |
Квалификатор ограничения. |
CONSTRAINT_SCHEMA |
nvarchar(128) |
Имя схемы, содержащей ограничение.
Важно!
Не используйте представления INFORMATION_SCHEMA, чтобы определить схему объекта. Единственный надежный способ найти схему объекта — направить запрос к представлению каталога sys.objects или использовать функцию OBJECT_SCHEMA_NAME.
|
CONSTRAINT_NAME |
sysname |
Имя ограничения. |
UNIQUE_CONSTRAINT_CATALOG |
nvarchar(128) |
Квалификатор ограничения UNIQUE. |
UNIQUE_CONSTRAINT_SCHEMA |
nvarchar(128) |
Имя схемы, содержащей ограничение UNIQUE.
Важно!
Не используйте представления INFORMATION_SCHEMA, чтобы определить схему объекта. Единственный надежный способ найти схему объекта — направить запрос к представлению каталога sys.objects или использовать функцию OBJECT_SCHEMA_NAME.
|
UNIQUE_CONSTRAINT_NAME |
sysname |
Ограничение UNIQUE. |
MATCH_OPTION |
varchar(7) |
Ссылочные условия, соответствующие ограничению. Всегда возвращает SIMPLE. Это означает, что не определено никакого соответствия. Предполагается, что условие соответствует ограничению, если выполняется одно из следующих требований.
|
UPDATE_RULE |
varchar(11) |
Операция принимается, если инструкция языка Transact-SQL нарушает ссылочную целостность, определенную этим ограничением. Возвращает одно из следующих значений.
Если на ON UPDATE для этого ограничения указывается NO ACTION, обновление первичного ключа, на который выполняется ссылка в ограничении, не будет распространяться на внешний ключ. Если такое обновление первичного ключа будет вызывать нарушение ссылочной целостности, так как, по крайней мере, один внешний ключ содержит такое же значение, SQL Server не будет выполнять изменений в родительских и ссылающихся на них таблицах. SQL Server также сформирует сообщение об ошибке. Если на ON UPDATE для этого ограничения указывается CASCADE, любое изменение первичного ключа автоматически распространяется на значение внешнего ключа. |
DELETE_RULE |
varchar(11) |
Операция принимается, если инструкция Transact-SQL нарушает ссылочную целостность, определенную этим ограничением. Возвращает одно из следующих значений.
Если на ON DELETE для этого ограничения указывается NO ACTION, удаление на первичном ключе, на который выполняется ссылка в ограничении, не будет распространяться на внешний ключ. Если такое удаление первичного ключа будет вызывать нарушение ссылочной целостности, так как, по крайней мере, один внешний ключ содержит такое же значение, SQL Server не будет выполнять изменений в родительских и ссылающихся на них таблицах. SQL Server также сформирует сообщение об ошибке. Если на ON DELETE для этого ограничения указывается CASCADE, любое изменение значения первичного ключа автоматически распространяется на значение внешнего ключа. |
Примеры
В следующем примере возвращаются сведения о каждом ограничении FOREIGN KE в схеме Sales базы данных.
USE AdventureWorks;
GO
SELECT CONSTRAINT_SCHEMA, CONSTRAINT_NAME, UNIQUE_CONSTRAINT_SCHEMA, UNIQUE_CONSTRAINT_NAME,
MATCH_OPTION, UPDATE_RULE, DELETE_RULE
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'Sales';