CREATE PROCEDURE dbo.abc2 @server varchar(20), @base varchar(20), AS DECLARE @pnCampo3 numeric(19,5) DECLARE @Nextvalue int DECLARE @cad varchar(1000) set @pnCampo3 = 0.0 set @cad='select @TestMe = MAX(NOTEINDX) from ['+@server+'].['+@base+'].[dbo].[SY03900] ' SET @Nextvalue = 0 sp_executeSql @cad,'@TestMe int OUTPUT', @TestMe = @Nextvalue OUTPUT SET @Nextvalue = @Nextvalue + 1 SELECT @Nextvalue set @pnCampo3=@pnCampo3+1.0I also don't understand why you put yourself into trouble, why not just made this field to be identity?