【发布时间】: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