|
Программирование >> Реализация баз данных
Операторы INSERT Операторы INSERT добавляют данные к таблицам-участникам через секционированное Операторы INSERT должны отвечать правилам: воператор INSERT следует включить всестолбць!, даже если столбец базовой таблицы может содержать пустые значения или у него есть определение DEFAULT; в конструкции VALUES оператора INSERT нельзя указывать ключевое слово DEFAULT; значения, предоставляемые орами INSERT, должны соответствовать логике ограничения CHECK, определенного для секционирования одной из участников; операторы INSERTзапрещены, если таблица-участник содержит столбец со свойством identity; операторы INSERT3anpeuteHH, если таблица-участник содержит CT0fl6entLmestamp; операторы INSERT запрещены, если образовано самосоединение с тем же самым представлением или с одной из таблиц-участников. Операторы UPDATE Операторы UPDATE модифицируют данные одной или нескольких таблиц-участников секционированного представления. Операторы UPDATE должны соответствовать следу-ющиi правилам: в них нельзя задавать ключевое слово DEFAULT в качестве значения конструкции SET, даже если у столбца соотвстсиую[1сп таблицы-участника есть определение DEFAUET; значение столбца со свойством identity нельзя изменять, но допускается обновление других столбцов; значение PRIMARY KEY нельзя изменять, если столбец содержит данныгапа text, image или ntext; обновления запрещены, если базовая таблица содержит столбец timestamp; обновления если самосоединение с этой же таблицей или любой таблицей-участником представления: в конструкции SET оператора №АТЕ нельзя задавать ключевое слово DEFAULT. Операторы DELETE Операторы DELETE удаляют данные через секционированное представление из одной или нескольких таблиц-участников. Операторы DELETE не допускаются, если образовано самосоединение с этой же таблицей или любой таблицей - участником представления. Модификация данных при использовании триггера INSTEAD OF Триггеры INSTEAD OF позволяют стандартное действие оператора, вызывающе- го его срабатывание (INSERT, UPDATE или DEEETE). Например, можно определить INSTEAD OF-триггер. проверяющий наличие ощибки или определенного значения в одном или нескольких столбцах и выполняющий перед добавлением записи дополнительные действия. Так, если обновляемо значение почасовой зарплаты в таблице платежной ведомости превышает заданное значение, стоит определить триггер, который выводит сообщение об ошибке и откатывает транзакцию или добавляет новую запись в журнал аудита прежде, чем добавить новую запись в таблицу платежной ведомости. Триггеры INSTEAD OF определяют как для таблиц, так и для представлений. Однако польза от INSTEAD OF-триггеров наиболее очевидна при расширении набора типов обновлений, который поддерживает представление. INSTEAD OF-триггеры подробно обсуждаются в главе 9. Упражнение 2. Доступ к данным с помощью представления AuthorsBooks В этом упражнении вы создадите представления на таблице Authors, в которое войдут только имена и фамилии авторов. Далее вы добавите в БД с помощью этого представления сведения о новом авторе, модифицируете их, а затем удалите. Чтобы выполнить это упражнение, необходимо зарегистрироваться в качестве администратора на компьютере под управлением Windows 2000. 1 Создание AuthorNames для просмотра данных Откройте Query Analyzer и подключитесь к локальному серверу. 2. На панели L.unui в окне Query введите следуюшип код Transact-SQL: USE BookShopDB CREATE VIEW AuthorNames SELECT FirstName, LastName FROM Authors Этот оператор создает имена и фамилии авторов из таб- лицы Authors базы данных BookShopDB. 3. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится об успешном завершении команды. Просмотр данных через представление AuthorNames 1, На панели Editor в окне Query введите следующий код Transact-SQL: USE BookShopDB SELECT * FROM Aut nor Names ORDER BY LastName Этот оператор извлекает данные через представление AuthorNames. Результирующий набор упорядочивается по фамилии автора. 2. Исполните оператор Transact-SQL. набор выводится на вкладке Grids панели Results. данных AuthorNames 1. Ha панели Editor в окне Query введите следующий код Transact-SQL: USE BookShopDB INSERT AuthorNames VALUES ( William, Burroughs) Этот оператор добавляет сведения о новом авторе через AuthorNames. 2. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение об успешном завершении команды. 3. На панели Editor в окне Quer дадите и исполните ующий код Transact-SQL: SELECT * . FROM Authors Результирующий набо дится на вкладке Grids панели Results. 4. Прокрутите результирующий Haf-op. чтобы увидеть последнюю строку. Обратите внимание, что к списку авторов добавлен William Burroughs, а также на значения которые были по умолчанию полям и Description. Модификация данных щью представлении AuthorNames На панели Editor в окне введите следующий код Transact-SQL: USE BookShopDB UPDATE AuthorNames SET FirstName = John WHERE LastName = Burroughs Этот оператор изменяет имя автора с фамилией Burroughs. 2. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение об успешном завершении команды. 3. На панели Editor в окне Query введите и исполните следующий код Transact-SQL: SELECT FROM AuthorNames Результирующий набор выводится на вкладке Grids панели Results. 4. Прокрутите результирующий набор, чтобы увидеть последнюю строку. Обратите внимание, что имя автора William Burroughs изменилось на John Burroughs. Удаление ных через представление AuthorNames 1. На панели Editor в окне Query введите следующий кол Transact-SQL: USE BookShopDB DELETE AuthorNames . WHERE LastNartie = Burroughs Этот оператор удаляет автора с фамилией Burroughs из таблицы Authors. 2. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение об успешном завершении команды. 3. Ha панели Editor в окне Query введите и исполните следующий код Transact-SQL: SELECT FROM Authors Результирующий набор на вкладке Grids панели Results. 4. Прокрутите результирующий набор, чтобы увидеть последнюю строку. Обратите внимание, что автор John Burroughs удален из таблицы Authors.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.162
При копировании материалов приветствуются ссылки. |