【问题标题】:import data from CSV to MS SQL using *.bat file使用 *.bat 文件将数据从 CSV 导入 MS SQL
【发布时间】:2016-06-21 00:17:22
【问题描述】:

我有带有列的 csv 文件: ID,名称,值

我需要编写简单的Test.bat文件(windows批处理文件),我放的地方:

服务器名称、数据库、表、用户和密码

并且脚本会将所有 *.csv 数据插入到我的数据库中。 (类似于 SQL 加载器的东西)

【问题讨论】:

  • 嗨,Shnugo,谢谢它有效:)
  • BCP - 它与 MS Management Studio 一起安装?因为如果有人没有,将不会运行我的 bat 文件

标签: sql-server csv batch-file batch-processing loader


【解决方案1】:

广告 BCP:

无论如何都没有系统内置的工具。但我认为 BCP 是与 SQL Server 一起安装的——可能并不适用于所有客户端的机器......

广告安全:

在 BAT 文件中调用 BCP 的一个问题是安全性……请注意,可以访问您的 BAT 文件的每个人都会在其中找到完整的连接字符串。每个人都可以从那里引入任何 SQL cmd...

广告自己的应用程序

从这个角度来看,用您最喜欢的编码语言编写一个小型应用程序可能会更容易和更好,它可以满足您的需求。因此,您需要确保此应用程序存在于您客户的机器上。这样的应用程序允许您进行诸如跟踪日志文件、显示“真实”错误消息或进行某种用户权限管理等辅助工作。

【讨论】:

    【解决方案2】:

    好的,

    用户指的是我团队中的人,但他们正在使用 Windows 身份验证....

    您是否建议使用其他工具?

    我已经写了vba代码来上传数据(conn.Execute "insert.....),但是没有BCP那么快。 也许如果您有其他示例作为更好的解决方案,请分享

    【讨论】:

    • 嗨,请避免发布不是答案的答案...最好对适当的贡献发表评论或编辑您的问题。现在你有一个新问题。您可能会考虑结束这个问题(通过投票和/或接受 - 这取决于您),然后开始一个新问题。请发布您使用的 VBA,最后 BCP 本身只不过是一个工具,在您的客户端上下文中运行。您创建的任何工具都可以同样快...
    • 我的 vba 插入代码:Dim conn As ADODB.Connection Dim rcrds As ADODB.Recordset Dim iRowNo, i As Long Dim id, name, value As String Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook Set ws = wb.Worksheets("Sheet1") Dim login,passwd,host,dbname As String login = "" passwd = "" host = "" dbname = " Set conn = New ADODB.Connection
    • with conn .ConnectionString = "driver={sql server};Server=" + host + _ ";Database=" + dbname + _ ";User ID=" + login + _ ";Password =" + passwd + _ ";Trusted_Connection=False;" .Open End with iRowNo = 1
    • 直到 ws.Cells(iRowNo, 1) = "" id = ws.Cells(iRowNo, 1) name = ws.Cells(iRowNo, 2) value = ws.Cells(iRowNo, 3 ) conn.Execute "insert into table_name(id, name, value) values ('" & id & "', '" & name & "', '" & value & "')" iRowNo = iRowNo + 1 Loop conn.关闭
    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多