我在使用ADO和MSSQL服务器时正在执行sql脚本。 在Here下,您将找到多行sql语句的第一个示例,如:
use master;
go;
EXEC sp_detach_db
@dbname=N'DATABASENAME';
go;
我将这些行从Tmemo复制到我的TADOQuery.sql.text但由于已经无法识别go语句而失败,并且我的mssql服务器收到了关键字错误。 我可以将整个sript作为一个TQquery运行,还是将我的查询拆分成几个部分,用分号分隔并遍历整个文本?
答案 0 :(得分:2)
您必须拆分每个语句而不发送go
。
SQL-Server不解释GO,这是由SSMS完成的。
答案 1 :(得分:2)
首先,您的代码无效(不是;在GO
之后)并且必须是这样的
USE master;
GO
EXEC sp_detach_db
@dbname=N'DATABASENAME';
GO
实际上GO
是MSSMS用来分隔SQL语句的分隔符。
如果你想使用与MSSMS相同的脚本,你必须像MSSMS那样使用它。
GO