【问题标题】:SQL Bulk Insert from unknown file name来自未知文件名的 SQL 批量插入
【发布时间】:2015-04-12 15:20:42
【问题描述】:

我需要将 .csv 文件中的数据批量插入到我的数据库中。

然而,这些 .csv 文件带有未知名称,例如 "es[a_random_date_and_time_here]person.csv"

我有自动取款机...

BULK INSERT TestDB.dbo.tblPersonsImport

 FROM 'C:\Users\Josh\Desktop\Test\es20150301195906person.csv'
    WITH
    (
        FIELDTERMINATOR = ',',
        ROWTERMINATOR = '0x0a'
    )

这可行,但这需要每次手动编辑每个存储过程。

我可以修改它以处理带有任何名称的文件吗?

【问题讨论】:

    标签: sql sql-server stored-procedures bulkinsert


    【解决方案1】:

    对于这种情况,您可以使用动态 sql 并使用指定的文件名调用 sp。见以下代码:

    Create PROCEDURE dbo.LoadFile (@fileName varchar(250))
    AS
        SET NOCOUNT ON
        declare @query varchar(4000) = 
        '
        BULK INSERT TestDB.dbo.tblPersonsImport
    
         FROM ''C:\Users\Josh\Desktop\Test\'+@fileName+'''
            WITH
            (
                FIELDTERMINATOR = '','',
                ROWTERMINATOR = ''0x0a''
            )
        '
    
        exec (@query)
        return (0)
    GO
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多