Я пытаюсь создать цикл SQL While, который обновит временную таблицу значениями из другой таблицы. Значения из другой таблицы:
477286
560565
499330
391827
127375
526354
501736
357359
410433
500946
261297
377667
135931
235691
247239
143672
548752
471945
...
Написал следующее, однако последнее значение вставляется только несколько раз.
Вот код:
USE Reports
GO
CREATE TABLE #TempTable (CreatedByID int, LastUpdatedByID int, ID int,
AlertDE int, Alert char(50), StartDTTM datetime, EndDTTM datetime,
IsInactiveFLAG char(1),AlertDetails char(1));
DECLARE @numrows INT
SELECT @numrows = COUNT(*) FROM [Reports].[dbo].[Eligible]
DECLARE @id int
DECLARE @LoopCount INT = 1
DECLARE @count int = @numrows
SELECT @id = [id] FROM [Reports].[dbo].[Eligible]
WHILE (@LoopCount <= @count)
BEGIN
INSERT INTO #TempTable (CreatedByID, LastUpdatedByID, ID, AlertDE, Alert, StartDTTM, EndDTTM, IsInactiveFLAG,AlertDetails)
VALUES (52,52,@id,0,'Eligible',CURRENT_TIMESTAMP,'1900-01-01
00:00:00.000','N','')
SET @LoopCount = @LoopCount + 1
END
SELECT * FROM #TempTable
DROP TABLE #TempTable
Я предполагаю, что должен сказать ему, чтобы он каким-то образом проходил через значения в другой таблице, но я не уверен, что это правильный подход, или если в целом я беру длинный путь по шине.