Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
2019-11-19 | 175 |
5.00
из
|
Заказать работу |
|
|
Рассчитывая на то, что можно создать диалоговыми средствами Management Studio и пользовательский табличный тип данных, мы в окне Обозревателя объектов раскрываем список баз данных, раскрываем базу данных BestDatabase, раскрываем папку Программирование, раскрываем Типы, щелкаем правой кнопкой мыши по строке Определяемые пользователем табличные типы и выбираем в контекстном меню Создать определяемый пользователем тип таблицы. Однако вместо того чтобы увидеть диалоговое окно, позволяющее задать характеристики этого типа данных, мы получаем сценарий, который содержит описание синтаксиса оператора CREATE TYPE:
-- ================================
-- Create User-defined Table Type
-- ================================
USE <database_name,sysname,AdventureWorks>
GO
-- Create the data type
CREATE TYPE <schema_name,sysname,dbo>.<type_name,sysname,TVP> AS TABLE
(
<columns_in_primary_key,, c1> <column1_datatype,, int>
<column1_nullability,, NOT NULL>,
<column2_name, sysname, c2> <column2_datatype,, char(10)>
<column2_nullability,, NULL>,
<column3_name, sysname, c3> <column3_datatype,, datetime>
<column3_nullability,, NULL>,
PRIMARY KEY (<columns_in_primary_key,, c1>)
)
GO
Так что для этих целей лучше использовать ваши глубокие познания в области языка Transact-SQL и конкретно оператора CREATE TYPE.
Удаление пользовательского типа данных
Для удаления пользовательского типа данных из базы в языке Transact-SQL используется оператор DROP TYPE. Его синтаксис показан в листинге 4.52 и на рис. 4.25.
Листинг 4.52. Синтаксис оператора Drop Type
DROP TYPE [<имя схемы>.]<имя типа данных>;
Рис. 4.25. Синтаксис оператора DROP TYPE
Тип данных можно удалить только в том случае, если он не используется в других объектах (локальных переменных, столбцах таблиц, параметрах хранимых процедур) базы данных. Или в иной терминологии: если от него не зависят другие объекты базы данных.
|
Например, попробуйте оператором drop type удалить псевдоним d_char30. Вы получите сообщение, что удалить его невозможно, поскольку на него ссылаются другие объекты. В данном случае это созданный нами табличный тип данных.
Более подробные сведения можно получить при попытке удаления этого псевдонима из среды Management Studio. Щелкните в окне Обозреватель объектов правой кнопкой по имени псевдонима и в контекстном меню выберите команду Удалить. Появится окно удаления объекта (рис. 4.26).
Рис. 4.26. Окно удаления объекта
Если здесь щелкнуть по кнопке OK, то в следующих диалоговых окнах вы сможете увидеть, по какой причине удаление невозможно. Чтобы получить подробную информацию о зависимостях этого псевдонима, нужно в окне Удаление объекта щелкнуть мышью по кнопке Показать зависимости.
Появится окно со списком объектов, зависящих от данного псевдонима (рис. 4.27). Здесь видно, что от псевдонима зависит объект базы данных refpeople.
Рис. 4.27. Объекты, зависящие от псевдонима
В этом же окне можно увидеть и список объектов, от которых зависит наш объект. Для этого в верхней части окна нужно установить переключатель Объекты, от которых зависит [ D _ CHAR 30].
Чтобы удалить пользовательский тип данных (да и любой другой объект базы данных), нужно устранить все его зависимости. Для этого следует либо удалить те объекты базы данных, которые его используют, либо в этих объектах устранить ссылки на удаляемый объект. Например, если какая-либо таблица содержит столбец, ссылающийся на удаляемый псевдоним, то нужно либо удалить этот столбец, либо заменить эту ссылку, установив для столбца системный тип данных.
Удаление таблиц
Удалить существующую в базе данных таблицу можно при выполнении оператора Transact-SQL Drop Table или же при использовании диалоговых средств в программе Management Studio.
Нельзя удалить таблицу, у которой существуют так называемые внешние зависимости. Это когда на таблицу ссылается хранимая процедура, представление (view) или когда на первичный или уникальный ключ таблицы ссылается внешний ключ другой таблицы.
|
Для выполнения всех последующих действий с базой данных в этой главе пересоздайте и заполните данными базу данных BestDatabase, используя четыре сценария из электронного архива, прилагаемого к данной книге (см. приложение 6).
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!