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 に答える