我有以下sql脚本
DECLARE @tmpTable TABLE (rowID int IDENTITY,
woID varchar(100), srID varchar(100),
woWorkOrderNumber varchar(100),
woSequenceCount varchar(100),
WorkOrderNumber varchar(100)
)
INSERT INTO @tmpTable (woID, srID, woWorkOrderNumber, woSequenceCount, WorkOrderNumber)
SELECT
woID, srID, woWorkOrderNumber, woSequenceCount,
SUBSTRING(woWorkOrderNumber, 11, 20 ) AS WorkOrderNumber
FROM
WorkOrder
WHERE
codeSICurrentStatusCode NOT IN (3, 4)
AND SUBSTRING(woWorkOrderNumber, 11, 20) = ''
SELECT * FROM @tmpTable
但是我在rowID列上获得了这些结果:
如您所见,rowID
似乎是我选择的表格中的行号。我试图在这个临时表上实现的是rowID
从1开始然后是2然后是3开始等等。我的代码出了什么问题?
答案 0 :(得分:0)
您需要在ORDER BY
语句INSERT
子句中指定SELECT
,以便控制身份值分配的顺序。您也可以使用ROW_NUMBER()
代替IDENTITY,以确保没有差距,并提供对值的完全控制。