Главная » Статьи » SQL Server

Цикл по запросу или таблице без курсора
Цикл по запросу или таблице без курсора
DECLARE @Loc_tables TABLE 
(
 ID INT IDENTITY(1,1),
 DocumentID INT
)

INSERT INTO @Loc_tables(DocumentID)
SELECT DISTINCT DocumentId FROM t_Documents with(nolock)

DECLARE @Loc_i_CurrID INT,
 @Loc_i_MaxID INT

SET @Loc_i_CurrID = isNULL((SELECT MIN(ID) FROM @Loc_tables),0)
SET @Loc_i_MaxID = isNULL((SELECT MAX(ID) FROM @Loc_tables),-1)

SELECT DocumentID FROM @Loc_tables WHERE ID = @Loc_i_CurrID

WHILE @Loc_i_CurrID <= @Loc_i_MaxID
BEGIN
 SELECT DocumentID
 FROM t_Documents 
 WHERE ID = @Loc_i_CurrID

 SET @Loc_i_CurrID = @Loc_i_CurrID + 1
END
 
Категория: SQL Server | Добавил: sqlshop (19.04.2013)
Просмотров: 2366 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]