Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒SQL\T-SQL⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

T-SQL: Управление, использование и циклы в курсорах T-SQL в MS SQL Server


Управление, использование, выборка циклом в курсорах T-SQL MS SQL Server

Можно еще почитать на https://technet.microsoft.com/ru-ru/library/ms190028(v=sql.105).aspx

Команды управления курсорами:

DECLARE – создание курсора
OPEN – открытие\заполнение данными курсора
FETCH – выборка\изменение строк курсора
CLOSE – закрытие курсора
DEALLOCATE – удаление курсора

Примеры делались на SQL Server 2012

USE test;

--Создаем тестовую таблицу и заполняем данными
CREATE TABLE [dbo].[test](
    id INT,
    name VARCHAR(30),
    lastname VARCHAR(30)
)

INSERT INTO [dbo].[test] VALUES(1,'Name1','lastanme1')
INSERT INTO [dbo].[test] VALUES(2,'Name2','lastanme2')
INSERT INTO [dbo].[test] VALUES(3,'Name3','lastanme3')

--Переменные для работы
DECLARE @id INT
DECLARE @name VARCHAR(30), @lastname VARCHAR(30)

--Создадим курсор
DECLARE cur CURSOR FOR 
SELECT id, name, lastname FROM [dbo].[test]

--Откроем курсор
OPEN cur

--Выборка данных первой строки
FETCH NEXT FROM cur INTO @id, @name, @lastname

--Пока есть данные в курсоре - выборка циклом
WHILE @@FETCH_STATUS = 0
BEGIN 
    SELECT @id, @name, @lastname
    --Выборка следующей строки
    FETCH NEXT FROM cur INTO @id, @name, @lastname
END

--Закрываем курсор
CLOSE cur
--Уничтожаем курсор
DEALLOCATE cur

DROP TABLE [dbo].[test]


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru