Firebird多个声明

zz1*_*433 5 sql database firebird statements

有没有办法在Firebird上执行多个语句(其中没有一个必须返回任何东西)?就像导入SQL文件并执行它一样.

我一直在找一段时间,却找不到任何东西.

TPA*_*OPA 8

Execute语句正是为了这个目的.也适用于IBExpert,一个简单的例子:

execute block as
begin
  Update stuff; 
  Delete stuff; 
  Update stuff;
end
Run Code Online (Sandbox Code Playgroud)

全面的指南,包含临时变量和循环:http: //www.firebirdsql.org/refdocs/langrefupd15-psql-execstat.html


Bob*_*bby 0

正常的查询分隔符不应该起作用吗?喜欢:

Update stuff; Delete stuff; Update stuff;
Run Code Online (Sandbox Code Playgroud)

  • 事实并非如此。因此,如果我有 2 个 alter 语句来执行,firebird 会抱怨“无效令牌。动态 SQL 错误。SQL 错误代码 = -104。令牌未知 - 第 2 行,第 1 列。alter。” (4认同)
  • Bobby 是对的,quey-delimiter 是普通的分隔符。只有两点意见:如果您使用像FeniSql这样的工具,您必须执行“执行脚本”命令而不是“执行sql语句”。另外,对于过程,您必须使用有趣的语法“Set Term ^; .... Set Term ;^”,并在过程中使用 ^ 作为分隔符。 (2认同)
  • 它可能被否决,因为它没有用。尝试运行具有多个语句的 EXECUTE BLOCK 只会产生 -104 错误和有关令牌的投诉。我没有使用任何这些查询工具 - 只是 Firebird.Embedded 和 Firebird.Client nuget 包。设置终止符应该没有什么区别,但无论如何都不起作用。 (2认同)
  • 我知道这是几年后的事了,但是,为什么这是公认的答案呢?肯定是TPAKTOPA给的吧? (2认同)