Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Используемые в ORDER BY должны быть индексированными




FAST_FORWARD- курсор быстрого доступа, непрокручиваемый, только чтение

READ_ONLY- курсор не может вносить изменений в исходные данные, а

пользователи – могут.

SCROLL_LOCKS- обновления могут быть выполнены только курсором, а другие

Операторы UPDATE выполняться не будут.

OPTIMISTIC- позволяет осуществлять обновление строк в курсоре и вне его.

Пример:

Курсорные переменные

DECLARE s1 CURSOR

LOCAL

FAST_FORWARD

FOR SELECT f FROM bd

DECLARE @ a1 CURSOR

SET a1=s1

При объявлении переменной типа CURSOR выражение DECLARE s1 CURSOR….

Не создает курсор

Открытие, закрытие и освобождение курсора

OPEN [GLOBAL] курсор_или _переменная ……………..создает набор записей

CLOSE [GLOBAL] курсор_или _переменная…………….курсор закрывается

DEALLOCATE [GLOBAL] курсор_или _переменная…..удаляет идентификатор или

Курсорную переменную, но

Не обязательно сам курсор

Манипулирование строками с помощью курсора

FETCH курсор_или_переменная ……..извлекает указанную строку из строк курсора

FETCH курсор_или_переменная………список переменных должен содержать пере-

INTO список_переменных менную для каждого столбца, присутствующего

В SELECT.

Выбор строки с записью в переменную

DECLARE a1 CURSOR

LOCAL

FOR SELECT tn, f FROM bd

DECLARE @s1 INT, @s2 CHAR(20)

OPEN a1

FETCH a1 INTO @s1, @s2

PRINT str(@s1,8,2)+@s2

CLOSE a1

DEALLOCATE a1

Выбор строки по абсолютной позиции

DECLARE a1 CURSOR

LOCAL

KEYSET

FOR SELECT tn, f FROM bd

DECLARE @s1 INT, @s2 CHAR(20)

OPEN a1

FETCH FIRST FROM a1 INTO @s1, @s2

PRINT str(@s1,8,2)+@s2

FETCH ABSOLUTE 5 FROM a1 INTO @s1, @s2

PRINT str(@s1,8,2)+@s2

CLOSE a1

DEALLOCATE a1

Выбор строки по их относительной позиции

DECLARE a1 CURSOR

LOCAL

KEYSET

FOR SELECT tn, f FROM bd

DECLARE @s1 INT, @s2 CHAR(20)

OPEN a1

FETCH ABSOLUTE 5 FROM a1 INTO @s1, @s2

PRINT str(@s1,8)+ ' '+@s2

FETCH RELATIVE 3 FROM a1 INTO @s1, @s2

PRINT str(@s1,8)+ ' '+@s2

FETCH RELATIVE -3 FROM a1 INTO @s1, @s2

PRINT str(@s1,8)+ ' '+@s2

CLOSE a1

DEALLOCATE a1

FETCH NEXT для быстродействующего курсора

DECLARE a1 CURSOR

LOCAL

FAST_FORWARD

FOR SELECT tn, f FROM bd

DECLARE @s1 INT, @s2 CHAR(20)

DECLARE @count int

OPEN a1

SET @count=1

WHILE @count<=6

BEGIN

FETCH a1 INTO @s1, @s2

PRINT str(@s1,8,2)+@s2

SET @count=@count+1

END

--FETCH RELATIVE 3 FROM a1 INTO @s1, @s2

--PRINT str(@s1,8)+ ' '+@s2

FETCH NEXT FROM a1 INTO @s1, @s2

PRINT str(@s1,8,2)+@s2

--FETCH ABSOLUTE 5 FROM a1 INTO @s1, @s2

--PRINT str(@s1,8,2)+@s2

CLOSE a1

DEALLOCATE a1

Модификация и удаление строк через курсоры

DECLARE A1 CURSOR

LOCAL

DYNAMIC

FOR SELECT TN,SN FROM i1

FOR UPDATE

OPEN A1

-- читаем первую строку

FETCH FIRST FROM A1

-- изменить,удалить строку

UPDATE I1 SET tn=55,SN=4444 WHERE CURRENT OF A1

--DELETE I1 WHERE CURRENT OF A1

--читаем

Select tn,SN FROM I1

CLOSE A1

DEALLOCATE A1@@CURCOR_ROWS ……….возвращает кол-во строк последнего курсора, если:

-m –курсор содержит m строк, полностью не заполнен

-1 – курсор является динамическим

Содержит 0 строк или не открыт

n – кол-во строк в курсоре n

 

Хранимые процедуры (ХП)

Это единственное средство выполнения операторов Transact-Sql. По сравнению со сценариями ХП обладают рядом преимуществ:

-ХП являются объектами БД и размещается с файлом БД, перемещается вместе с ним;

-ХП позволяют передавать данные процедуре и принимать от процедуры данные и

процедурный итоговый код;

-ХП представляются в оптимизированной форме, что ускоряет их выполнение.

Различают системные и пользовательские процедуры.

Системные процедуры хранятся в главной БД иначинаются с sp_

Примеры:

sp_addligin – добавляет учетные записи

sp_rename – переименовывает объекты БД

sp_renamedb - переименовывает БД

 

ХП начинаются с dt _ и используются для управления и

преобразования данных

 

ХП с входными параметрами

EXEC имя_процедуры параметр [, параметр]

Примеры: EXEC sp_helpdb 'aromatherapy'

EXEC sp_dboption 'aromatherapy','read only'

 

 

ХП с именнованными параметрами

EXEC имя_процедуры @имя_параметра=значение [,@имя_параметра=значение]

Пример: EXEC sp_dboption @optname=’read only’, @dbname=’aromatherapy’

 





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 349 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2754 - | 2314 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.