Как известно, в SQL Server 2008 добавилось много замечательных улучшений языка T-SQL.
Прежде всего, это передача табличных переменных в процедуры и функции, оператор MERGE, новые типы данных.
Но также, есть новшества из разряда «мелочь, а приятно»:
1. Можно инициализировать переменные при их объявлении.
DECLARE @M INT = 10
2. Появились операции +=, —=,/=,%=, &=, |=, and ^= , позволяющие писать более компактный и красивый код.
3. Вставка нескольких значений в одной инструкции INSERT. При вставке нескольких значений в таблицу, нет необходимости писать несколько инструкций INSERT – VALUE или SELECT – UNION.
Пример использования :
-- Задача по получению значений столбца в одну строку
CREATE TABLE #Table
(
Col VARCHAR(10)
)
INSERT INTO #Table(Col)
VALUES ('AAA'), ('BBB'), ('CCC'), ('DDD'), ('EEE')
/*
раньше вместо этого приходилось писать несколько раз INSERT… VALUE или SELECT … UNION
*/
DECLARE @Str VARCHAR(2000) = '' -- сразу инициализируем переменную
SELECT @Str += Col + ',' FROM #Table -- при помощи += получаем более
-- компактный код
PRINT @Str
DROP TABLE #Table
4 комментария:
Или я что-то путаю, или сортировка по функции агрегирования появилась раньше 2008-го...
Точно. В 2005 уже была, поправлю.
Мне негде сейчас проверить, но, по-моему, было и в 2000-м :)
Так пусть же эта тайна умрет вместе с 2000 :)))
Отправить комментарий