DEFAULT-ограничение — это механизм в SQL Server, который определяет значение по умолчанию для столбца, автоматически используемое при вставке новой строки, если для этого столбца явно не указано значение. Это важный инструмент для обеспечения целостности данных и упрощения операций вставки.
Автоматическое применение:
Гибкость значений:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATETIME DEFAULT GETDATE(),
Status VARCHAR(20) DEFAULT 'Pending',
TotalAmount DECIMAL(10,2) DEFAULT 0
)
ALTER TABLE Employees
ADD CONSTRAINT DF_HireDate
DEFAULT GETDATE() FOR HireDate
Текущая дата/время:
CREATE TABLE LogEntries (
LogID INT IDENTITY,
EntryDate DATETIME DEFAULT CURRENT_TIMESTAMP,
Message TEXT
)
Уникальный идентификатор:
CREATE TABLE Documents (
DocID UNIQUEIDENTIFIER DEFAULT NEWID(),
DocName VARCHAR(100)
)
Сложные выражения:
CREATE TABLE Products (
ProductID INT,
LastUpdated DATETIME DEFAULT (DATEADD(DAY, 30, GETDATE()))
)
Применение только при INSERT:
INSERT INTO Orders (OrderID, Status)
VALUES (1, DEFAULT)
Взаимодействие с NULL:
Ограничения:
Просмотр существующих:
SELECT name, definition
FROM sys.default_constraints
WHERE parent_object_id = OBJECT_ID('TableName')
Удаление:
ALTER TABLE TableName
DROP CONSTRAINT DF_ConstraintName
DEFAULT-ограничения — это эффективный способ управления значениями по умолчанию в SQL Server, который помогает поддерживать целостность данных и упрощает операции вставки. Они особенно полезны для столбцов с предсказуемыми начальными значениями, таких как даты создания, статусы или системные идентификаторы. Правильное использование DEFAULT-ограничений делает схему базы данных более выразительной и самодокументируемой.