#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)) - практически бесплатная операция для сервера.
Комментариев нет:
Отправить комментарий