Россия, г.Кемерово ул.Весенняя д.21 кв.29, КузГТУ, 2003 |
Создание и использование умолчаний, ограничений и правил
Присваивание и модифицирование умолчаний
Предположим, у нас имеется таблица с именем 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 (Имя_продукта).

Когда вы создаете или изменяете умолчание для существующей колонки с помощью Enterprise Manager, то, как и при использовании T-SQL, это не влияет на существующие строки таблицы: новое значение по умолчанию используется только при вставке новых строк. Если вы добавляете к таблице новую колонку и присваиваете ей значение по умолчанию, то в существующих строках данных этой колонке присваивается значение по умолчанию только в том случае, если не разрешено использование значений NULL. В противном случае эта новая колонка получит в существующих строках значение NULL. Чтобы разрешить использование значений NULL для новой колонки со вставкой значения по умолчанию в эту колонку для всех существующих строк, используйте метод, описанный в разделе "Оператор ALTER TABLE с атрибутом DEFAULT" выше в этой лекции.
Создание Default-объектов и управление этими объектами
Вы можете также создавать Default-объект и просматривать существующие Default-объекты с помощью Enterprise Manager. Для просмотра существующих Default-объектов откройте Enterprise Manager, раскройте сервер и базу данных, которые хотите использовать, и щелкните на папке Defaults. Все существующие Default-объекты появятся в правой панели (рис. 16.6). Отметим, что показаны умолчания DF_not_applicable и DF_area_code, которые мы создали выше в этой лекции с помощью оператора CREATE DEFAULT.
Чтобы создать новый Default-объект и выполнить привязку этого умолчания к колонке или определенному пользователем типу данных с помощью Enterprise Manager, выполните следующие шаги.
- Раскройте сервер и базу данных, щелкните правой кнопкой мыши на Defaults и выберите из контекстного меню пункт New Default (Создать умолчание), чтобы появилось окно Default Properties (Свойства умолчания) (рис. 16.7). Мы присвоим Default-объекту имя DF_none и значение "none". По окончании щелкните на кнопке OK.
- Для привязки вашего умолчания к определенному пользователем типу данных или к колонке щелкните правой кнопкой мыши в правой панели Enterprise Manager на имени этого умолчания (в данном случае – DF_none ) и выберите из контекстного меню пункт Properties (Свойства). Снова появится окно Default Properties, но теперь будут доступны кнопки Bind UDTs (Привязка к определенным пользователем типам) и Bind Columns (Привязка к колонкам). Щелкните на кнопке Bind UDTs, чтобы появилось диалоговое окно Bind Default to User-defined Data Types (Привязка умолчания к определенным пользователем типам данных) (рис. 16.8). В этом диалоговом окне представлены все определенные пользователем типы данных. В этом списке вы можете выбрать определенный пользователем тип данных, к которому нужно выполнить привязку умолчания. На рис. 16.8 мы видим типы данных area_code и brand_type. Если вы определили другие типы данных, то они также появятся в вашем списке. По окончании щелкните на кнопке Apply (Применить) и затем – на кнопке OK, чтобы вернуться в окно Default Properties. Мы не будем выполнять привязку нашего умолчания к какому-либо определенному пользователем типу данных; мы выполним вместо этого привязку к колонке, как показано на следующем шаге.
- Для привязки умолчания к колонке щелкните на пункте Bind Columns (Привязка к колонкам), чтобы появилось диалоговое окно Bind Default to Columns (Привязка умолчания к колонкам). Теперь выберите колонку, с которой хотите связать данное умолчание. Сначала выберите имя таблицы в раскрывающемся списке Table (Таблица). Затем в списке Unbound Columns (Колонки без привязки) выберите имя колонки, с которой хотите связать умолчание. Затем щелкните на кнопке Add (Добавить). На рис. 16.9 показано это диалоговое окно после добавления колонки phone таблицы customer_data к списку Bound Columns (Колонки с привязкой).
- Щелкните на кнопке 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 (Удаление объектов).