存储过程返回值

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:41:35
存储过程如下:

drop proc insertnull
go
create procedure InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(1000)
set @dtName='insert into ' + @TableName +' default values'
exec(@dtName)
set @Result=SCOPE_IDENTITY()

怎么才能获取到@Result的值,不用@@IDENTITY,希望各给大侠帮帮忙啊!!
大体意思是我要往@TableName表中插入一条空的数据,返回这条数据的ID(自增长的主键)

drop proc insertnull
go
create procedure InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(100)
set @dtName='insert into ' + @TableName +' default values;set @a=SCOPE_IDENTITY()'
exec sp_executesql
@dtName,
N'@a int output',
@Result output
go

create procedure InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(1000)
set @dtName='insert into ' + @TableName +' default values'
exec(@dtName)
set @dtName='select @Result= max(dd) from '+@TableName
exec(@dtName)

create procedure InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(1000)
set @dtName='insert into ' + @TableName +' default values'
exec(@dtName)
set @Result=SCOPE_IDENTITY()
select @Result As Result --注意,这里显示出来
go