sql - 从文本文件批量插入 SQL Server 添加唯一标识符或跳过列

标签 sql sql-server bulkinsert

我需要从文本文件中取出行并插入到表格中。文件的行类似于以下内容:

string1
string2
string3
string4
...

我的表格有两列:

uniqueidentifier, stringValue

我想对表进行批量插入,从文本文件中抓取每一行,并为每一行添加一个新的 uniqueidentifier(最好是一个 GUID,但一个整数计数器就可以了)。

有人知道如何批量上传吗?到目前为止,我的 SQL 是:

BULK
INSERT tableNameToInsertInto
FROM 'C:\importList.txt'
WITH
(
ROWTERMINATOR = '\n'
)
GO

最佳答案

试试这个 -

值(value)观:

C:\importList.txt ->
string1
string2
string3
string4

格式化文件:

C:\importList.fmt ->
11.0
1
1     SQLCHAR     0     100     "\r\n"     1     text     ""

查询:

CREATE TABLE dbo.testBulk 
(
      RowUID UNIQUEIDENTIFIER DEFAULT NEWID()
    , Value VARCHAR(100)
)

INSERT INTO dbo.testBulk (Value)
SELECT c.[text]
FROM OPENROWSET(
    BULK N'C:\importList.txt', 
    FORMATFILE = 'C:\importList.fmt'
) c

关于sql - 从文本文件批量插入 SQL Server 添加唯一标识符或跳过列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16514212/

相关文章:

SQL查询将所有记录分成70 :30 ratio based on 3 criteria

sql-server - 不可信约束

sql-server - SQL Server : ORDER BY in subquery with UNION

asp.net - 使用适用于 .NET 的 Mysql 连接器批量插入

sql - 在Sql Bulk Insert语句中,我们可以使用相对路径(files\a.txt)而不是绝对路径(c :\abc\a. txt)或网络通用路径(\\abc\a.txt)吗?

c# - 错误 :System. IndexOutOfRangeException

sql - 如何更新 SQL Server 中列的偏移量?

sql - 给定步骤的当前时间交替真/假标志

sql匹配条件

mysql - 处理大量数据的批量插入