使用Informix在单个往返中执行多个语句

时间:2011-03-22 12:39:50

标签: ado.net informix

是否可以使用Informix和.Net在单个往返中运行多个DML语句?

示例(当然这不起作用):

var cmd = someIfxConnection.CreateCommand();
cmd.CommandText = @"
    insert into Foo(Bar, Baz) values (1, 2);
    insert into Foo(Bar, Baz) values (3, 4);";
cmd.ExecuteNonQuery();

1 个答案:

答案 0 :(得分:0)

据我所知,Informix允许您像在示例中一样执行多个INSERT / UPDATE语句。你不能做的是执行包含SELECT的多个语句。

例如,在SQL Server中,通常会看到如下代码:

INSERT INTO Foo(Bar, Baz) VALUES (1, 2); SELECT @@IDENTITY AS Id

这可以在单个命令中执行,并从新插入的记录中返回自动递增的主键值。

然而,这在Informix中不起作用。您必须执行两个不同的SQL命令。一个用于插入记录,另一个用于从systables表中检索Id:

SELECT DBINFO('sqlca.sqlerrd1') FROM systables WHERE tabid = 1