1
DROP TABLE #ID
CREATE TABLE #ID (ID INT)
INSERT INTO #ID (ID)
VALUES (24),(65),(77),(44)

DECLARE @ID int
SELECT @ID =  MAX(ID) from #ID

DROP TABLE #name
CREATE TABLE #NAME (Name char (20))
INSERT INTO #NAME (name)
VALUES ('Ben'),('Alex'),('Mark') 

DROP TABLE #abc
CREATE TABLE #ABC (ID INT, Name char(20))
INSERT INTO #ABC (ID,Name)
SELECT @ID,name
FROM #name

SELECT * FROM #ABC

我希望该过程从 #ID 中获取最大 ID,然后为下一条记录添加 1。所以,预期的结果应该是:

ID  Name
77  Ben                 
78  Alex                
79  Mark   

请帮助我在不使用游标的情况下绕过这个逻辑。我可以以任何方式使用 IDENTITY(@ID,1) 吗?谢谢

4

1 回答 1

3

代替:

Select * from #ABC

为了:

Select ROW_NUMBER() OVER (ORDER BY ID)  + ID - 1, Name from #ABC

工作小提琴

于 2013-05-07T17:08:57.463 回答