You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Advantage StreamlineSQL ODBC中插入/更新后返回列值?

在Advantage StreamlineSQL ODBC中获取插入/更新后的列值

方法1:使用OUTPUT子句(替代PostgreSQL的RETURNING)

Advantage StreamlineSQL支持OUTPUT子句,可直接返回插入或更新操作影响的行数据,语法逻辑和PostgreSQL的RETURNING类似。

插入操作示例

INSERT INTO Table (value, value1, value2)
OUTPUT inserted.last_id
VALUES ('value', 'value1', 'value2');

执行后结果集会直接返回新插入行的last_id值。

更新操作示例

UPDATE Table
SET value = 'new_value'
WHERE id = 123
OUTPUT updated.last_id, updated.value;

该语句会返回被更新行的last_id以及更新后的value字段值。

方法2:创建自定义存储过程

如果需要复用插入并返回数据的逻辑,可以创建存储过程来实现:

CREATE PROCEDURE InsertAndReturnID(
    @val VARCHAR(50),
    @val1 VARCHAR(50),
    @val2 VARCHAR(50)
)
RETURNS INTEGER
AS
BEGIN
    DECLARE @newID INTEGER;
    
    INSERT INTO Table (value, value1, value2)
    VALUES (@val, @val1, @val2);
    
    -- 获取刚插入行的last_id(适用于自增列或触发器生成的ID)
    SET @newID = (SELECT last_id FROM Table WHERE CURRENT OF INSERT);
    
    RETURN @newID;
END;

调用存储过程的方式:

EXECUTE InsertAndReturnID('value', 'value1', 'value2');

执行后会直接返回新插入行的last_id。

注意事项

  • 若last_id是自增列,也可使用IDENT_CURRENT('Table')获取最后插入的自增值,但并发场景下CURRENT OF INSERT或OUTPUT子句的准确性更高。
  • 确保你的Advantage StreamlineSQL版本支持上述语法(通常v10及以上版本支持OUTPUT子句)。

内容的提问来源于stack exchange,提问作者MadMax Atr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 02:59:54