Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ SQL\T-SQL ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


T-SQL 2014: программирование



--Переменные

--Объявление переменной без присваивания значения
DECLARE @per1 INT;

--Объявление переменной с присваиванием значения
DECLARE @per2 INT = 2;

--Объявление нескольких переменных
DECLARE @per3 FLOAT = 11.1, @per4 FLOAT = 22.2;

--Присваивание значения переменной запросом
SET @per1 = ( SELECT YEAR(GETDATE()) - (1 + 2 + @per2) )

--Выборка значений переменных
SELECT @per1, @per3 + @per4


--Конструкция IF ELSE
IF 1 = 2
BEGIN
    SELECT '1 = 2'
END
ELSE
BEGIN
    SELECT '1 != 2'
END

--Конструкция WHILE
WHILE 1 = 1
BEGIN
    SELECT 1
    BREAK
END

--Конструкция CASE
SELECT 
    CASE @per2 
        WHEN 1
            THEN 'is 1'
        WHEN 2
            THEN 'is 2'
        ELSE 
            'not 1 and 2'
    END AS 'per'


--Оператор EXECUTE
EXECUTE ('SELECT 15 +' + @per2)


--Курсоры
USE test;

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

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

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

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

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

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

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

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

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

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

DROP TABLE [dbo].[cursor]


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

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

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

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

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект