我们有一个更新程序应用程序,它在 SQL Server 数据库上执行超过 30,000 行代码的 SQL 脚本。在这个脚本中有大量的GO
语句。我习惯使用的 ADO 组件不支持该GO
语句。我们OSQL
在更新服务器时总是使用命令行,这很难发现问题(输出一个文本文件,然后我们必须对其进行解析以查找错误和结果)。GO
如果 Delphi 中的某些东西能够找到这些语句并一次执行每个块,那就更理想了。
我确实了解该GO
语句特定于能够执行它们的 MS 工具。同样,该脚本有超过 30,000 行代码,至少包含 500 条GO
语句。我们在 SQL Management Studio 和 OSQL 中为更新程序使用相同的脚本。但是 OSQL 并没有为我们提供我们需要的结果 - 它是执行此类脚本的一种草率方式。
Delphi 是否有任何现有的 SQL Server 兼容工具可以识别GO
语句?我不是在谈论解析器(尽管我确信会涉及解析),我在谈论一个现成的实用程序来执行包含GO
语句并返回每个脚本块的结果的 SQL 脚本。
例如,一个块可能会创建一个表,然后GO
, 然后为该表创建一个存储过程,另一个GO
. 代码是如此复杂,以至于在像这个问题这样的代码中实现它是完全不可能的。
更新
我已经成功编写了一小段工作代码来执行此操作,但是它没有考虑GO
注释块中的语句。
我没有在这个问题上进一步询问,只是想我会分享我在哪里。