从备忘录中运行复杂的SQL脚本(多行)

17 浏览
0 Comments

从备忘录中运行复杂的SQL脚本(多行)

我正在使用ADO和MSSQL服务器执行SQL脚本。在这里,你会找到一个多行SQL语句的第一个示例,如下所示:

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

我将这些行从Tmemo复制到我的TADOQuery.sql.text,但是失败了,因为go语句无法被识别,我得到了MSSQL服务器的关键字错误。

我可以将整个脚本作为一个TQquery运行,还是必须将查询分成几个部分,由分号分隔,并遍历整个文本?

0
0 Comments

问题原因:在运行复杂的SQL脚本时,如果不使用go命令进行分割,可能会导致出现问题。在SQL-Server中,go命令的解释是由MSSMS(Microsoft SQL Server Management Studio)执行的,而不是由SQL-Server本身执行。

解决方法:为了解决这个问题,需要将每个语句进行拆分并去掉go命令。这样可以确保SQL脚本能够正确地在SQL-Server上执行。

0
0 Comments

问题的出现原因是代码不合法,缺少了GO后的分号,并且需要按照MSSMS的方式来处理脚本。

解决方法如下:

1. 使用GO作为分隔符将脚本拆分为多个部分。

2. 将每个部分发送到数据库中执行。

经过以上步骤,就可以解决运行复杂SQL脚本的问题了。

0