0

我在使用 ADO 和 MSSQL server 时执行 sql 脚本。在这里,您将找到多行 sql 语句的第一个示例,例如:

 use master;
 go;
 EXEC sp_detach_db
     @dbname=N'DATABASENAME';
 go;

我将这些行从 Tmemo 复制到我的 TADOQuery.sql.text 但失败,因为 go 语句已经无法识别并且我得到 mssql 服务器的关键字错误。我可以将整个 sript 作为一个 TQquery 运行,还是将我的查询分成几部分,用分号分隔并遍历整个文本?

4

2 回答 2

2

您必须在不发送的情况下拆分每个语句go。SQL-Server 不解释 GO,这是由 MSSMS 完成的。

于 2013-04-17T08:43:20.407 回答
2

起初您的代码无效(否 ; 之后GO)并且必须是这样的

USE master;
GO
EXEC sp_detach_db
    @dbname=N'DATABASENAME';
GO

实际上GO是 MSSMS 用来分隔 SQL 语句的分隔符。

如果您想使用与 MSSMS 相同的脚本,则必须像 MSSMS 一样使用。

  1. 通过分隔符将脚本拆分为单个部分GO
  2. 将每个部分发送到数据库
于 2013-04-17T09:06:34.960 回答