在一个查询记录集中插入并获取新ID

时间:2015-05-20 12:41:49

标签: mysql asp-classic recordset

我需要在asp-classic和mysql中插入一行并获得他唯一的id。 这是我的代码:

sql = "insert into o_operaciones (idoperacion, fechaalta, nombre)"
sql = sql & ") VALUES ("
sql = sql & "DEFAULT,now(),'" & nombre & "');"
sql = sql & "SELECT max(idoperacion) as id from o_operaciones; "
Set rsInsert = Conex.Execute(sql)
idoperacion = cdbl(rsInsert("id"))

使用此代码我没有错误,但记录集为空或在执行后关闭。

我知道还有其他方法可以做到这一点,但我认为这是更快的。

我尝试了SET NOCOUNT,但在MySql中无效。

1 个答案:

答案 0 :(得分:-1)

我不确定你是否可以按照你想要的方式做到这一点。

如果您能够/不介意使用存储过程,则可以使用以下内容:

CREATE PROCEDURE MyProcedure
    @col1            VARCHAR(20),
    @new_id    INT    OUTPUT
AS
BEGIN
    SET NOCOUNT ON

    INSERT INTO MyTable (col1)
    VALUES (@col1)

    SELECT @new_id = SCOPE_IDENTITY()

    SELECT @new_id AS id

    RETURN
END