【问题标题】:Incorrect syntax near 'GO' - TADOQuery [duplicate]“GO”附近的语法不正确 - TADOQuery [重复]
【发布时间】:2011-08-25 05:19:52
【问题描述】:

可能重复:
How to run a database script file from Delphi?

我有一个很长的 sql 脚本来运行查询,它会更新字段、创建表、创建过程等。所以,周围有很多“GO”这个词,否则它将无法正常运行。

在 MSSQL 查询上,脚本运行良好,而在 ADO 查询上,我得到以下信息:

“GO”附近的语法不正确

编辑:好的,我想我们已经很确定 ADO Query 不会读取单词 GO。但是,如果没有 GO 这个词,我的代码将无法工作,必须在第一行创建过程,并且我在文件周围有几个过程。这是个问题。

唯一的解决方法是创建单独的查询?

【问题讨论】:

  • 投票结束。 RRUZ 在相关问题中提供的答案应该足以让 OP 开始工作。哦,顺便说一句,GO 语句不是有效的 SQL 命令 .
  • 我同意,我想选择一个,但他们都给出了相同的答案,这会让人有点不公平。请关闭此线程。
  • 根据您的编辑,您可以发布有关如何处理包含存储过程/触发器等的脚本以及所需的 GO 语句的问题。然而,这将类似于 RRUZ 对另一个问题的回答;除了您希望将 GO 语句之间的脚本的每个部分作为单独的查询执行,而不是一个简单地删除 GO 的大型查询。
  • 另外,将GO 替换为; 会解决问题吗?

标签: sql sql-server delphi delphi-xe


【解决方案1】:

是的。删除 GO - 它不是有效的 SQL。

这是特定于 Microsoft SQL 实用程序的语法 - 请参阅 MSDN。

向 SQL Server 实用程序发出一批 Transact-SQL 语句结束的信号。

(强调我的)

【讨论】:

    【解决方案2】:

    Go 是批处理终止器,它不是 SQL,SSMS 可以理解。从 ADO 运行时只需删除 GO

    【讨论】:

      【解决方案3】:

      GO 不是 SQL 命令。它是 SSMS 识别的批处理终止符

      【讨论】:

      • 糟糕,错误地编辑了你的答案..对不起,我把它恢复了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2016-03-21
      • 2020-01-14
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多