我有以下表格:
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上会起作用,但似乎并非如此。有谁知道这是否可行或是否有办法使这项工作?