Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5605 / 317 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 16:

Создание и использование умолчаний, ограничений и правил

Присваивание и модифицирование умолчаний

Предположим, у нас имеется таблица с именем Product_Info в базе данных MyDB (рис. 16.3). (Инструкции по созданию этой таблицы с помощью Enterprise Manager см. в "Создание таблиц баз данных" .)

Чтобы определить умолчание, просто щелкните на имени колонки, которой хотите присвоить это умолчание, и введите значение по умолчанию в поле Default Value (Значение по умолчанию) вкладки Columns (Колонки) внизу окна. На рис. 16.3 колонке Description (Описание) присвоено значение по умолчанию "n/a"; это может быть значение-заполнитель, указывающее, что описание продукта еще не известно. Кроме того, значение по умолчанию заключено в круглые скобки – Enterprise Manager добавляет их автоматически, когда вы сохраняете таблицу.

Изменение значения по умолчанию происходит столь же просто. Замените исходное значение по умолчанию новым значением по умолчанию и сохраните свою работу, щелкнув на кнопке Save (Сохранить). На рис. 16.4 показано, что значение по умолчанию колонки Description изменено на "not available"; на рис. 16.5 показано умолчание "general merchandise" (обычные товары), добавленное к колонке Product_Name (Имя_продукта).

Окно Design Table (Разработка таблицы) для таблицы Product_Info

увеличить изображение
Рис. 16.3. Окно Design Table (Разработка таблицы) для таблицы Product_Info
Примечание. Вводя символьную строку для значения по умолчанию, вы должны заключить ее в апострофы, иначе SQL Server выдаст сообщение об ошибке, когда вы попытаетесь сохранить соответствующее изменение.

Когда вы создаете или изменяете умолчание для существующей колонки с помощью Enterprise Manager, то, как и при использовании T-SQL, это не влияет на существующие строки таблицы: новое значение по умолчанию используется только при вставке новых строк. Если вы добавляете к таблице новую колонку и присваиваете ей значение по умолчанию, то в существующих строках данных этой колонке присваивается значение по умолчанию только в том случае, если не разрешено использование значений NULL. В противном случае эта новая колонка получит в существующих строках значение NULL. Чтобы разрешить использование значений NULL для новой колонки со вставкой значения по умолчанию в эту колонку для всех существующих строк, используйте метод, описанный в разделе "Оператор ALTER TABLE с атрибутом DEFAULT" выше в этой лекции.

Окно Design Table, где показано измененное значение по умолчанию

увеличить изображение
Рис. 16.4. Окно Design Table, где показано измененное значение по умолчанию
 Окно Design Table, где показано добавленное значение по умолчанию

увеличить изображение
Рис. 16.5. Окно Design Table, где показано добавленное значение по умолчанию
Создание Default-объектов и управление этими объектами

Вы можете также создавать Default-объект и просматривать существующие Default-объекты с помощью Enterprise Manager. Для просмотра существующих Default-объектов откройте Enterprise Manager, раскройте сервер и базу данных, которые хотите использовать, и щелкните на папке Defaults. Все существующие Default-объекты появятся в правой панели (рис. 16.6). Отметим, что показаны умолчания DF_not_applicable и DF_area_code, которые мы создали выше в этой лекции с помощью оператора CREATE DEFAULT.

 Просмотр существующих Default-объектов

увеличить изображение
Рис. 16.6. Просмотр существующих Default-объектов

Чтобы создать новый Default-объект и выполнить привязку этого умолчания к колонке или определенному пользователем типу данных с помощью Enterprise Manager, выполните следующие шаги.

  1. Раскройте сервер и базу данных, щелкните правой кнопкой мыши на Defaults и выберите из контекстного меню пункт New Default (Создать умолчание), чтобы появилось окно Default Properties (Свойства умолчания) (рис. 16.7). Мы присвоим Default-объекту имя DF_none и значение "none". По окончании щелкните на кнопке OK.
  2. Для привязки вашего умолчания к определенному пользователем типу данных или к колонке щелкните правой кнопкой мыши в правой панели Enterprise Manager на имени этого умолчания (в данном случае – DF_none ) и выберите из контекстного меню пункт Properties (Свойства). Снова появится окно Default Properties, но теперь будут доступны кнопки Bind UDTs (Привязка к определенным пользователем типам) и Bind Columns (Привязка к колонкам).
     Окно Default Properties (Свойства умолчания)

    Рис. 16.7. Окно Default Properties (Свойства умолчания)
    Щелкните на кнопке Bind UDTs, чтобы появилось диалоговое окно Bind Default to User-defined Data Types (Привязка умолчания к определенным пользователем типам данных) (рис. 16.8). В этом диалоговом окне представлены все определенные пользователем типы данных. В этом списке вы можете выбрать определенный пользователем тип данных, к которому нужно выполнить привязку умолчания. На рис. 16.8 мы видим типы данных area_code и brand_type. Если вы определили другие типы данных, то они также появятся в вашем списке. По окончании щелкните на кнопке Apply (Применить) и затем – на кнопке OK, чтобы вернуться в окно Default Properties. Мы не будем выполнять привязку нашего умолчания к какому-либо определенному пользователем типу данных; мы выполним вместо этого привязку к колонке, как показано на следующем шаге.
      Диалоговое окно Bind Default to User-defined Data Types (Привязка умолчания к определенным пользователем типам данных)

    Рис. 16.8. Диалоговое окно Bind Default to User-defined Data Types (Привязка умолчания к определенным пользователем типам данных)
  3. Для привязки умолчания к колонке щелкните на пункте Bind Columns (Привязка к колонкам), чтобы появилось диалоговое окно Bind Default to Columns (Привязка умолчания к колонкам). Теперь выберите колонку, с которой хотите связать данное умолчание. Сначала выберите имя таблицы в раскрывающемся списке Table (Таблица). Затем в списке Unbound Columns (Колонки без привязки) выберите имя колонки, с которой хотите связать умолчание. Затем щелкните на кнопке Add (Добавить). На рис. 16.9 показано это диалоговое окно после добавления колонки phone таблицы customer_data к списку Bound Columns (Колонки с привязкой).
     Диалоговое окно Bind Default to Columns (Привязка умолчания к колонкам))

    Рис. 16.9. Диалоговое окно Bind Default to Columns (Привязка умолчания к колонкам))
  4. Щелкните на кнопке OK, чтобы вернуться в окно Default Properties, и щелкните на кнопке OK еще раз, чтобы закрыть окно Default Properties.

Чтобы отменить привязку Default-объект а к определенному пользователем типу в окне Default Properties, откройте диалоговое окно Bind Default to User-defined Data Types, как это описано выше, и просто сбросьте флажок Bind. Чтобы отменить привязку Default-объект а к колонке, откройте диалоговое окно Bind Default to Columns, выделите имя этой колонки и затем щелкните на кнопке Remove (Удалить).

Чтобы удалить Default-объект, вы должны сначала отменить привязку этого умолчания ко всем другим объектам (как только что было описано). SQL Server возвратит сообщение об ошибке, если вы попытаетесь удалить умолчание, которое привязано к одному или нескольким объектам. Для удаления Default-объект а щелкните на папке Defaults в левой панели Enterprise Manager, щелкните правой кнопкой мыши на имени этого Default-объект а, выберите из контекстного меню пункт Delete и затем щелкните на кнопке Drop All (Удалить все) в появившемся диалоговом окне Drop Objects (Удаление объектов).