Sybase获取动态sql语句返回值

最近遇到个需求,要获取动态sql的返回值,由于Sybase并没有像Sqlserver一样有sp_executesql这样的存储过程,在网上找了很久并没有找到相关的解决方法。

最终我绕了点远路还是把它解决了。下面是我的做法:

CREATE TABLE
    test
    (
        id INT NOT NULL IDENTITY,
        name VARCHAR(20) NOT NULL
    );

create procedure my_proc(@sql varchar(256))
AS
BEGIN
exec(@sql)
end

declare @id int,@sql nvarchar(1000),@nid varchar(10)
set @sql = 'insert into test(name) values(''Json'') '
set @sql = @sql+ 'select @@IDENTITY'
execute @id=my_proc @sql     ---就是这里了,可以用变量去接存储过程的返回值
set @nid=convert(varchar(10),@id)
print @nid

如果你有更好的方法,希望你能告诉我。

你可能感兴趣的:(Sybase)