尝试运行SQL时VBScript收到语法错误

时间:2014-04-07 20:30:24

标签: sql sql-server vbscript

我有一个针对数据库运行SQL Server脚本的vbscript。该脚本创建了一堆外键。如果您登录到SQL Server Management Studio,从下拉菜单中选择正确的数据库,复制并粘贴查询,然后单击运行,它就可以正常工作。

但是,使用此VBScript,我每次都会收到语法错误:

Function runSQL()
  Set objSQLConnection = CreateObject( "ADODB.Connection" )
  Set objSQLData = CreateObject( "ADODB.Recordset" )

  SQLConnectionString = "driver={SQL Server};server=.;Trusted_Connection=yes;database=MyDB"

  objSQLConnection.Open SQLConnectionString

  query = objFSO.openTextFile("MyScript.sql", 1, 0, -2).readAll()

  objSQLData.Open query, objSQLConnection

  objSQLConnection.Close
End Function

确切的错误是Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'GO'。它没有特别的帮助,因为文件中有{J}个GO个。

SQL文件没有什么特别之处。它只是创造了一个巨大的外键约束。到底是怎么回事?我很快就结束了。可能相关的是我在阅读文件时遇到了困难(因此openTextFile("MyScript.sql", 1, 0, -2))。

1 个答案:

答案 0 :(得分:0)

GO不是T-SQL语句,它就是所谓的批处理分隔符。 SQL Server Management Studio或命令行工具sqlcmd.exe等工具可以理解它。  它用于分隔要发送到数据库引擎的语句。例如,在SSMS中,您可以使用它在批次之间显示PRINT的一些反馈,对于多批次的长时间运行脚本非常有用。