@uni_column_name varchar(100),
@table_name varchar(20),
@seqKeyName varchar(100)
as
declare
@vSeqValue int,
@strSql Nvarchar(100)
begin
-- set @vSeqValue=exec ('select max('+@uni_column_name+')+1 from '+@table_name);
Set @strSql='select @vSeqValue=max(col1)+1 from '+@table_name
exec sp_executesql @strSql, N'@vSeqValue Int out',@vSeqValue output --这里改成sp_executesql执行就可以了
-- Select @vSeqValue
if @vSeqValue > 0
update UOS_UOSSEQUENCE set seq_value = @vSeqValue where seq_name = @seqKeyName
else
insert into UOS_UOSSEQUENCE (seq_name,seq_value) values (@seqKeyName,1)
commit;
end
@uni_column_name varchar(100),
@table_name varchar(20),
@seqKeyName varchar(100)
as
declare
@vSeqValue int
begin
set @vSeqValue=exec ('select max('+@uni_column_name+')+1 from '+@table_name);
if @vSeqValue > 0
update UOS_UOSSEQUENCE set seq_value = @vSeqValue where seq_name = @seqKeyName
else
insert into UOS_UOSSEQUENCE (seq_name,seq_value) values (@seqKeyName,1)
commit;
end
declare @sql nvarchar(8000),@vseqvalue int,@table_name varchar(50)
set @table_name='abc'
set @sql='select @vseqvalue=max(col1)+1 from '+@table_name
EXEC sp_executesql @sql,N'@vseqvalue int OUTPUT',@vseqvalue OUTPUT