Освоение проверочных ограничений в SQL Server: простое обеспечение целостности данных

Когда дело доходит до управления данными в SQL Server, обеспечение целостности данных имеет решающее значение. Одним из эффективных способов обеспечения целостности данных является использование проверочных ограничений. Ограничения проверки позволяют определять правила, ограничивающие значения, которые можно вставлять или обновлять в столбце. В этой статье мы рассмотрим различные методы добавления проверочных ограничений в SQL Server, гарантируя, что ваши данные останутся под контролем.

Метод 1: добавление проверочных ограничений во время создания таблицы
Самый простой способ добавить проверочные ограничения — во время создания таблицы. Давайте рассмотрим пример:

CREATE TABLE Employees (
    ID INT PRIMARY KEY,
    Name VARCHAR(50),
    Age INT,
    CONSTRAINT CHK_Employee_Age CHECK (Age >= 18)
);

В приведенном выше примере мы создаем таблицу «Сотрудники» с проверочным ограничением «CHK_Employee_Age», которое гарантирует, что в столбце «Возраст» будет минимальное значение 18.

Метод 2: добавление проверочных ограничений с помощью ALTER TABLE
Если вы хотите добавить проверочное ограничение к существующей таблице, вы можете использовать оператор ALTER TABLE. Вот пример:

ALTER TABLE Employees
ADD CONSTRAINT CHK_Employee_Name CHECK (LEN(Name) > 0);

В этом примере мы добавляем проверочное ограничение «CHK_Employee_Name», которое гарантирует, что длина столбца «Имя» больше нуля.

Метод 3: добавление проверочных ограничений с помощью логических выражений
Проверочные ограничения также можно определить с помощью логических выражений. Давайте посмотрим пример:

ALTER TABLE Employees
ADD CONSTRAINT CHK_Employee_Age_Range CHECK (Age BETWEEN 18 AND 60);

В этом примере мы определяем проверочное ограничение «CHK_Employee_Age_Range», которое ограничивает столбец «Возраст» значениями от 18 до 60.

Метод 4: добавление проверочных ограничений с помощью пользовательских функций
Для более сложных проверочных ограничений вы можете использовать пользовательские функции. Вот как это можно сделать:

CREATE FUNCTION fn_CheckEmployeeSalary (@Salary DECIMAL(10, 2))
RETURNS BIT
AS
BEGIN
    DECLARE @Result BIT;
    IF (@Salary >= 50000 AND @Salary <= 100000)
        SET @Result = 1;
    ELSE
        SET @Result = 0;
    RETURN @Result;
END;
ALTER TABLE Employees
ADD CONSTRAINT CHK_Employee_Salary CHECK (dbo.fn_CheckEmployeeSalary(Salary) = 1);

В этом примере мы создаем пользовательскую функцию «fn_CheckEmployeeSalary», которая проверяет, попадает ли зарплата в определенный диапазон. Затем мы добавляем проверочное ограничение «CHK_Employee_Salary», которое использует эту функцию.

Проверочные ограничения — это мощный инструмент SQL Server, который помогает поддерживать целостность данных путем применения правил к значениям столбцов. В этой статье мы рассмотрели различные методы добавления проверочных ограничений, включая их добавление во время создания таблицы, использование ALTER TABLE, определение логических выражений и использование пользовательских функций. Используя эти методы, вы можете гарантировать точность и согласованность своих данных.