Tôi thấy rằng tôi có thể duy trì thứ tự bảng nguồn bằng cách sử dụng BULK INSERT
vào một tệp, tiếp theo là thêm danh tính.
Đưa ra một bảng được phân cách bằng tab, C:\MyTable.txt
, nơi tôi đã cố tình di chuyển các hàng không theo thứ tự:
FileName FileType
wmsetup log
bar txt
wmsetup10 log
WMSysPr9 prx
WMSysPrx prx
Wudf01000Inst log
xpsp1hfm log
_default pif
0 log
002391_ tmp
005766_ tmp
Tôi đã chạy phần sau và giữ nguyên thứ tự tệp văn bản trong SQL Server:
IF EXISTS(
SELECT 1
FROM sys.tables t
INNER JOIN sys.schemas s on s.schema_id=t.schema_id
WHERE t.name='myTable'
AND t.[type]='U'
AND s.name='dbo'
)
DROP TABLE myTable
GO
CREATE TABLE dbo.myTable(FileName VARCHAR(80), FileType VARCHAR(30))
GO
BULK INSERT myTable FROM 'C:\MyTable.txt' WITH (
firstrow=2
, fieldterminator='\t'
, rowterminator='\n'
)
GO
ALTER TABLE myTable ADD ID INT IDENTITY(1,1)
GO
SELECT * FROM myTable
GO
Kết quả:
FileName FileType ID
--------------- -------- -----------
wmsetup log 1
bar txt 2
wmsetup10 log 3
WMSysPr9 prx 4
WMSysPrx prx 5
Wudf01000Inst log 6
xpsp1hfm log 7
_default pif 8
0 log 9
002391_ tmp 10
005766_ tmp 11