大批量导入数据库 BULK INSERT

本文介绍了一个用于SQL Server的大批量数据导入存储过程实现方法。该存储过程通过BULK INSERT命令结合格式文件,实现从指定的数据文件中批量导入数据到指定的数据库表,并记录错误日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大批量导入数据库 自己写的存储过程

CREATE PROC [dbo].[sp_Import_TT]
@TableName NVARCHAR(50) ,  --导入的表名称
@DataFile NVARCHAR(100) , --数据源文件
@FormatFile NVARCHAR(100), --格式文件
@LogFile NVARCHAR(100) --日志文件
AS

 EXEC('BULK INSERT '+@TableName+'
                          FROM '''+@DataFile+'''
                          WITH
                          (
                             FORMATFILE = '''+@FormatFile+''', 
                             ROWS_PER_BATCH =10,                --错误数回滚,如果错误超过此数,将整个事务回滚
                             ERRORFILE = '''+@LogFile+'''                    
                           )'
      )
附:格式文件类型

9.0                        
9                         
1    SQLCHAR    0    20    ""    1    CWB_NO    ""
2    SQLCHAR    0    20    ""    2    AcctID    ""
3    SQLCHAR    0    10    ""    3    SERVICE_ID    ""
4    SQLCHAR    0    3    ""    4    DestSZMCode    ""
5    SQLCHAR    0    10    ""    5    ActualWeight    ""
6    SQLCHAR    0    10    ""    6    VolumeWeight    ""
7    SQLCHAR    0    2    ""    7    CountryCode    ""
8    SQLCHAR    0    8    ""    8    Clt_Datetime    ""
9    SQLCHAR    0    14    "/r/n"    47    PICKUP_TIME    ""

bcp导出数据:EXEC master..xp_cmdshell 'BCP OCS_Links_sha.DBO.tb_customer out D:/DATA.txt -c -F"2" -S"192.168.12.129/ocs" -U"sa" -P"111111"'
bcp 导出format文件:EXEC master..xp_cmdshell 'BCP OCS_Links_sha.DBO.tb_customer format nul -f D:/FMT.txt -c -S"192.168.12.129/ocs" -U"sa" -P"111111"'

 

    --,如果遇到阻止Shell,请使用以下SQL启用shell
  --EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值