Использование Microsoft SQL 2008 У меня есть цикл, который должен собирать данные из каждой строки, но кажется, что он захватывает только последнюю строку.Таблица:
CREATE TABLE [dbo].[TEST](
[PK] [int] NULL,
[ITEMS] [varchar](50) NULL
) ON [PRIMARY]
insert into dbo.test (pk, items) values (1, '1111')
insert into dbo.test (pk, items) values (2, '2222')
insert into dbo.test (pk, items) values (3, '3333')
insert into dbo.test (pk, items) values (4, '4444')
Я пытаюсь пройтись по ней и выбрать элементы для каждой строки для вставки, но я получаю только последнюю строку:
-- Get the number of rows in the looping table
DECLARE @RowCount INT
SET @RowCount = (SELECT COUNT(ITEMS) FROM dbo.TEST)
Print @ROWCOUNT
-- Declare an iterator
DECLARE @I INT
-- Initialize the iterator
SET @I = 1
--Loop through the rows of a table
WHILE (@I <= @RowCount)
BEGIN
Declare @Name varchar(100)
SELECT @Name = Lower(ITEMS) FROM dbo.TEST
PRINT 'Row No = ' + CONVERT(VARCHAR(2), @I)
Print @Name
-- Increment the iterator
SET @I = @I + 1
END
Я получаю результатыполучить:
4
Row No = 1
4444
Row No = 2
4444
Row No = 3
4444
Row No = 4
Кажется достаточно простым, но я не могу найти никакой информации о том, почему это происходит, и / или обдумать цикл и почему он не работает.Спасибо, Хизер