私見あなたの場合、一時テーブルは必要ありません。
次の 2 つのテーブルがあるとします。1 つはソース テーブルで、もう 1 つは宛先テーブルです。
CREATE TABLE mytable(id INT IDENTITY PRIMARY KEY, col1 nvarchar(10));
CREATE TABLE mytable2(id INT, value INT);
mytable
次のサンプル データが含まれています。
id col1
----------------
1 row1
2 row2
3 row3
4 row4
そして、このようなIDに基づいて何かを計算するSPがあります
CREATE PROCEDURE getValue (@id INT, @value INT OUT)
AS
SET NOCOUNT ON;
SET @value = @id * 2;
次に、このような仕事をするSPを作成できます
CREATE PROCEDURE proccessData
AS
SET NOCOUNT ON;
DECLARE @id INT, @value INT;
DECLARE id_cursor CURSOR FOR
SELECT id FROM mytable WHERE id > 1 AND id < 4;
OPEN id_cursor;
FETCH NEXT FROM id_cursor INTO @id;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC getValue @id, @value OUTPUT;
INSERT INTO mytable2 VALUES(@id, @value);
-- Or use update if you already have id's in mytable2
-- UPDATE mytable2 SET value = @value WHERE id = @id;
FETCH NEXT FROM id_cursor INTO @id;
END
CLOSE id_cursor;
DEALLOCATE id_cursor;
そのSPを呼び出した後
EXEC proccessData
あなたはmytable2に入るでしょう
id value
----------- -----------
2 4
3 6
そして、ここでsqlfiddleが機能しています