如何按顺序输出插入的记录ID?

时间:2015-12-02 17:50:46

标签: sql sql-server sql-server-2014

我有以下表格:

CREATE TABLE #TranslationTable(
    OriginalID int IDENTITY(1,1), 
    NewID int
)
CREATE TABLE #MyTempTable(
    [TempID] [int] IDENTITY(1,1),
    [Field1] [nvarchar](4000) NOT NULL,
    [Field2] [nvarchar](4000) NOT NULL
)
CREATE TABLE RealTable(
    [RealTableID] [int] IDENTITY(1,1),
    [Field1] [nvarchar](4000) NOT NULL,
    [Field2] [nvarchar](4000) NOT NULL
)

INSERT INTO RealTable
OUTPUT INSERTED.RealTableID INTO #TranslationTable
SELECT Field1, Field2 FROM #MyTempTable ORDER BY TempID ASC;

我的#MyTempTable中有一堆记录,当我将它们插入到我的RealTable中时,我想按顺序将RealTableID输出到#TranslationTable中。因此,例如,如果#TranslationTable和RealTable为空,并且我在#MyTempTable中有3条记录,那么#TranslationTable将如下所示:

OriginalID, NewID
1, 1
2, 2
3, 3

如果说RealTable中已有5条记录,那么#TranslationTable将如下所示:

OriginalID, NewID
1, 6
2, 7
3, 8

我的问题是INSERT语句似乎没有按SELECT语句所在的顺序插入和返回,所以我将#BT的插入到#TranslationTable中的顺序ID:

OriginalID, NewID
1, 7
2, 6
3, 8

我认为将SELECT ORDER BY放在SELECT上会起作用,但似乎并非如此。有谁知道这是否可行或是否有办法使这项工作?

0 个答案:

没有答案