【问题标题】:How to import data from .txt file to populate a table in SQL Server如何从 .t​​xt 文件导入数据以填充 SQL Server 中的表
【发布时间】:2019-08-17 09:50:24
【问题描述】:

每天都有一个包含客户数据的PPE.txt 文件存储在特定的文件目录中,以分号分隔并且始终具有相同的布局。

每天都有人必须根据PPE.txt 更新我们数据库中的特定表。

我想通过 SQL 脚本自动执行此过程

我认为的解决方案是通过脚本将数据从这个.txt 文件导入到创建的表中,然后执行更新。

到目前为止我所拥有的是

IF EXISTS (SELECT 1 FROM Sysobjects WHERE name LIKE 'CX_PPEList_TMP%')
   DROP TABLE CX_PPEList_TMP
GO

CREATE TABLE CX_PPEList_TMP  
(
    Type_Registy CHAR(1),
    Number_Person INTEGER,
    CPF_CNPJ VARCHAR(14),
    Type_Person CHAR(1),
    Name_Person VARCHAR(80),
    Name_Agency VARCHAR(40),
    Name_Office VARCHAR(40),
    Number_Title_Related INTEGER,
    Name_Title_Related VARCHAR(80)
)

UPDATE Table1
SET SN_Policaly_Exposed = 'Y'
WHERE Table1.CD_Personal_Number = CX_PPEList_TMP.CPF_CNPJ
  AND Table1.SN_Policaly_Exposed = 'N'

UPDATE Table1
SET SN_Policaly_Exposed = 'N'
WHERE Table1.CD_Personal_Number NOT IN (SELECT CX_PPEList_TMP.CPF_CNPJ 
                                        FROM CX_PPEList_TMP)
  AND Table1.SN_Policaly_Exposed = 'Y'

我知道我没有付出太多,但那是因为我还没有太多。

我想通过脚本用来自PEP.txt 文件的数据填充CX_PEPList_TMP 临时表,这样我就可以执行这个脚本来更新我的数据库。但我不知道任何我可以使用的命令,也没有在我的研究中找到。

提前致谢!

【问题讨论】:

    标签: sql sql-server csv tsql flat-file


    【解决方案1】:

    在您的情况下,我建议您使用 ETL 之类的 SSIS 更好且易于使用,您还可以在特定时间执行 Schedule

    【讨论】:

      【解决方案2】:

      使用 OPENROWSET

      您可以使用 OPENROWSET 选项读取文本文件(首先您必须启用即席查询)

      使用 Microsoft 文本驱动程序

      SELECT * FROM OPENROWSET('MSDASQL',
      'Driver={Microsoft Text Driver (*.txt; *.csv)};
      DefaultDir=C:\Docs\csv\;',
      'SELECT * FROM PPE.txt')
      

      使用 OLEDB 提供程序

      SELECT 
          * 
      FROM 
      OPENROWSET
              ('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Docs\csv\;IMEX=1;','SELECT * 
      FROM PPE.txt') t
      

      使用批量插入

      您可以将文本文件数据导入临时表并从中更新数据:

      BULK INSERT dbo.StagingTable
      FROM 'C:\PPE.txt'
      WITH 
        (
          FIELDTERMINATOR = ';', 
          ROWTERMINATOR = '\n' 
        )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 2023-03-30
        相关资源
        最近更新 更多