您可以在臨時表中選擇您的數據,然後在運行光標同時插入行ü就會有PK
DECLARE @tempTable TABLE(
a VARCHAR(MAX),
b VARCHAR(MAX),
c VARCHAR(MAX)
)
INSERT INTO @tempTable(a,b,c)
SELECT a,b,c FROM my_table WHERE x=y
DECALRE @a DATATYPE;
Declare @b DATATYPE;
Declare @c DATATYPE;
DECLARE cursor CURSOR FOR
SELECT * FROM @tempTable
OPEN cursor
FETCH NEXT FROM PropertyCursor INTO @a, @b,@c
WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO my_table(a,b,c)
VALUES(@a,@b,@c)
DECALRE @PrimaryKey INT = SCOPE_IDENTITY();//THis line will give u the PK so u can work with it and then below move to next row
FETCH NEXT FROM cursor INTO @a, @b,@c
END
CLOSE cursor
DEALLOCATE cursor
創建一個存儲過程並插入單獨使用循環記錄,所以,這將是很容易得到最後插入的ID。存儲此ID並返回 – sandeep 2012-08-09 12:33:53
是的,我想這是明顯的解決方案。但是,如果可能的話,我寧願犧牲解決方案的性能和更乾淨的代碼。 – nonshatter 2012-08-09 12:36:36