Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Лекция 05: Создание и использование умолчаний, ограничений и правил

Умолчания, ограничения и правила – это необязательные атрибуты, которые можно определять к атрибутам и таблицам базы данных. Говоря о создании таблиц, уже упоминалась возможность указания атрибуту значения по умолчанию. Рассмотрим другие методы создания и модифицирования умолчаний.

Напоминаем, что умолчания (значения по умолчанию *) – это значения, которые заносятся в определённую колонку, когда явно не указано вносимое значение. Ограничения (constraints)** используются как способ идентификации допустимых значений для атрибута (чтобы отклонять недопустимые значения) а также как средство обеспечения целостности данных в таблицах базы данных и между связанными таблицами.

Умолчания

Сначала рассмотрим причину, по которой может потребоваться использование умолчаний для определённых колонок таблицы; для этого мы посмотрим, что происходит, если не задаётся значение по умолчанию. Если в таблицу вводится строка, содержащая колонки без значений по умолчанию, и не во все колонки, допускающие null-значения, введены конкретные данные, то этим колонкам присваивается значение NULL. Но если колонка определена с атрибутом NOT NULL и не указано значение этой колонки при вводе строки, то будет возвращено сообщение об ошибке, информирующее, что в эту колонку нельзя поместить значение NULL. Именно в этом случае удобно применять умолчания. Умолчания можно использовать, чтобы указывать определённое значение, которое будет помещено вместо значения NULL, и тогда сообщение об ошибке генерироваться не будет. Следует использовать умолчания для колонок таблицы вместо разрешения использовать null-значения, поскольку операции по таким колонкам создают более высокую дополнительную нагрузку на систему, чем операции по колонкам, в которых не допускаются null-значения.

Microsoft SQL Server позволяет определять значение по умолчанию для каждой колонки таблицы. Однако, нельзя задать умолчание для колонок, имеющих тип данных timestamp или обладающих свойством IDENTITY или ROWGUIDCOL, поскольку эти колонки должны иметь уникальные значения. Колонки этого типа несовместимы со значениями по умолчанию, поскольку применение такого значения к колонке более одного раза приводило бы к тому, что колонка уже не имела бы уникальных значений. Колонке можно присваивать только одно значение по умолчанию, и оно будет автоматически использоваться каждый раз, когда это требуется. И ещё одно важное замечание относительно умолчаний: значение, задаваемое по умолчанию, должно быть совместимо с типом данных соответствующей колонки.

Определение и модифицирование умолчаний с помощью t-sql

значение по умолчанию для колонки можно определять посредством одного из трёх операторов T-SQL: CREATE TABLE, ALTER TABLE или CREATE DEFAULT. Оператор CREATE DEFAULT, используется в SQL Server для совместимости с предыдущими версиями, создаёт отдельный объект типа Default. Если используется данный метод, SQL Server сохраняет этот объект отдельно от таблицы, поэтому необходимо выполнять привязку этого объекта к колонке или колонкам с помощью системной хранимой процедуры sp_bindefault. При удалении таблицы, определение DEFAULT автоматически теряет связь с этой таблицей, но сам объект остаётся. Если используется метод CREATE TABLE или ALTER TABLE, то SQL Server сохраняет определение DEFAULT вместе с таблицей и при удалении таблицы происходит автоматическое удаление этого умолчания без необходимости выполнения дополнительных шагов. По этой причине обычно рекомендуют не использовать оператор CREATE DEFAULT. Однако использование Default-объекта может оказаться полезным, если одно значение по умолчанию будет использоваться для нескольких колонок.

Для запуска ваших операторов T-SQL следует использовать анализатор запросов SQL Query Analyzer, поскольку результаты будут появляться в виде графического пользовательского интерфейса (GUI), что проще для чтения, чем при запуске операторов в окне командной строки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]