2010-03-06 3 views

ответ

2

Есть ли способ, чтобы выполнить проверку данных с использованием проверочных ограничений. ..

Да, это то, что ограничения CHECK для: Im что невозможно сделать с помощью моделирования таблицы

... и как-то показать данные, которые не прошли проверку?

Нет, единственная информация, которую вы получите от ограничений CHECK, является сообщением об ошибке, если данные не соответствуют требованиям ограничения CHECK. Это зависит от вас, чтобы просмотреть данные.

Триггер будет следующей вероятной опцией, чтобы иметь возможность перенаправить попытки данных в таблицу для ведения журнала.

2

Вы можете запустить выбор, который использует логику из вашего ограничения проверки в таблице, на которой определено ограничение.

Возвращенные строки будут теми, которые не пройдут проверку.

Если определить следующую таблицу и СНЕСК:

IF OBJECT_ID ('dbo.Vendors', 'U') IS NOT NULL 
DROP TABLE dbo.Vendors; 
GO 
CREATE TABLE dbo.Vendors 
    (VendorID int PRIMARY KEY, VendorName nvarchar (50), 
    CreditRating tinyint) 
GO 
ALTER TABLE dbo.Vendors ADD CONSTRAINT CK_Vendor_CreditRating 
    CHECK (CreditRating >= 1 AND CreditRating <= 5) 

Вы можете выбрать строки таким образом:

SELECT VendorID 
FROM dbo.Vendors 
WHERE (CreditRating >= 1 AND CreditRating <= 5) 
+0

Ну, я хочу получить недопустимые данные после операции вставки/обновления. – Markus

+1

Если ограничение CHECK завершается с ошибкой, вставки/обновления не будет. И ограничение CHECK не сообщит вам, какой бит данных привел к его сбою. Вы должны проверить его в своем коде перед отправкой его в БД. – Oded

Смежные вопросы