2013-05-07 93 views
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。所以,預期的結果應該是:選擇MAX並添加1(SQL Server 2012)

ID Name 
77 Ben     
78 Alex     
79 Mark 

請幫我解決這個邏輯而不使用遊標。我可以以任何方式使用IDENTITY(@ ID,1)嗎?由於

回答

3

替換:

Select * from #ABC 

爲:

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

Working fiddle