【问题标题】:VBScript SQL Bulk Insert StatementVBScript SQL 批量插入语句
【发布时间】:2014-09-07 09:13:34
【问题描述】:

我有一个简单的 sql 批量插入语句,它在 sql mgmt 工作室中运行良好。我正在尝试从 .vbs 文件运行 sql 命令。这是我的 vbscript 代码。它一直到 msgbox 并显示消息。它没有显示任何错误,因此它似乎正在完成,但是数据库中的表格是空白的,因此没有导入数据。我错过了什么?

option explicit

Dim objConn
Dim objRS
Dim strSQL
Dim ConnectionString

Dim fso             
Dim objArgs

ConnectionString = "Provider=SQLOLEDB;Server=mtgops047-db006;Database=interlinqe3;Trusted_Connection=yes"

Set objConn = CreateObject ("ADODB.Connection")
Set objRS = CreateObject ("ADODB.RecordSet")
Set fso = CreateObject("Scripting.FileSystemObject")

objConn.Open ConnectionString

strSQL = "delete from Settlement_Import_Data"
strSQL = strSQL & " BULK INSERT Settle_Import_Data"
strSQL = strSQL & " FROM '\\server\sharedfolder\importdata.txt' with"
strSQL = strSQL & " ( FIELDTERMINATOR =',', ROWTERMINATOR = '\n')"


Set objRS = Nothing
objConn.Close
Set objConn = Nothing
MsgBox ("Update Complete!") 
WScript.Quit()

【问题讨论】:

  • 没有什么可以“运行”您构建的 sql 字符串。你错过了objConn.Execute(strSQL)之类的东西
  • 尝试在两个语句之间添加分号或换行符。不确定 ADO 是否支持,但这是一个简单的测试。
  • 换行符看起来是个问题。它只运行第一个命令。如何添加换行符?
  • 只需为您的delete 语句调用一次objConn.Execute(),然后为您的bulk insert 语句再次调用它。您在这里也不需要 Recordset 或 FileSystemObject。

标签: sql sql-server vba vbscript


【解决方案1】:

objConn.Execute() 为您的删除语句一次并为您的批量插入语句再次调用它解决了这个问题。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多