Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Генерация числовой последовательностей T-SQL

#sql #sql_server


Где можно прочитать и посмотреть примеры по созданию и использованию генераторов
последовательностей в Transact-SQL?    


Ответы

Ответ 1



Генерация числовых последовательностей

Ответ 2



Всеобъемлющая информация по созданию последовательностей на MSDN: http://msdn.microsoft.com/en-us/library/ff878091.aspx Как получать следующий номер из последовательности тут: http://msdn.microsoft.com/en-us/library/ff878370.aspx А ещё вы уверены, что именно последовательность вам нужна? Может обычныйIDENTITY подойдёт?

Ответ 3



В t-sql есть два основных способа. 1)для генерации небольших последовательностей удобно пользоваться рекурсией WITH N100000 AS( SELECT 1 N UNION ALL SELECT N+1 FROM N100000 WHERE N<100000 ) SELECT * FROM N100000 OPTION(MAXRECURSION 0) Удобно тем, что можно быстро получить любое число строк. однако есть способ быстрее 2) перемножение. WITH X AS(SELECT*FROM(VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0))X(X)) ,N100000 AS( SELECT ROW_NUMBER()OVER(ORDER BY(SELECT 1))N FROM X, X A, X B, X C, X D --, X E, X F ... ) SELECT * FROM N100000 Это, пожалуй, самый быстрый способ. Но от количества требуемых строк приходится варировать количеством перемножаемых таблиц и приписывать TOP. Здесь используется нумерация без сортировки ROW_NUMBER()OVER(ORDER BY(SELECT 1)) - практически бесплатная операция для сервера.

Комментариев нет:

Отправить комментарий