Buenas noches, comunidad. Soy nuevo en esto y requiero de su generosa ayuda, si no es mucho pedir.
Desde hace unos años vengo practicando la programación con el Visual Studio y el SQL 2008, como lo indiqué en el título.
Resulta ser que tengo una pequeña aplicación de escritorio, para la cuál uso el SQL Server 2008 R2.
Descargué la versión más actual para actualizarme y migrar mi base de datos, pero grande fue mi sorpresa cuando me percaté de que dentro de todos mis procedimientos almacenados (en el SQL 2019) me generaba error en el "raiserror", entonces intenté utilizar otros controles de error, pero no obtuve buenos resultados.
Lo más raro de esto es que en otro disco duro tengo montado el Sql 2008 y 2019, y al ejecutar el 2019 (existiendo el sql 2008), sí reconoce correctamente mi procedimiento.
No sé si es alguna cuestión de características, pero hasta ahora no he podido resolver el problema.
Si es que alguien es tan amable de ayudarme, se lo agradecería bastante.
Les dejo parte de mi código para que se fijen y puedan entender de lo que estoy hablando.
Este es mi procedimiento almacenado y más abajo les indicaré la línea que me genera error.
USE [bodega]
GO
/ Object: StoredProcedure [dbo].[sp_insUsuario] Script Date: 03/05/2021 20:38:27 /
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_insUsuario]
@nombre varchar(50),
@nick varchar(20),
@pass varchar(20),
@estado bit
AS
BEGIN
declare @verrno int, @verrmsg varchar(255)
begin tran
--Si ya existe el usuario con el mismo nombre.
If Exists(select * from usuario where nombre=@nombre)
begin
select @verrno=50000,
@verrmsg='El nombre del usuario ingresado ya existe'
goto error
end
--Insertar
Declare @idUsuarioAlta int
Set @idUsuarioAlta = (Select isNull(Max(idUsuarioAlta)+1,1) From usuario)
Insert into usuario(idUsuarioAlta,nombre,nick,pass,estado)
Values(@idUsuarioAlta,upper(@nombre),upper(@nick),@pass,@estado)
set @verrno=@@error
if (@verrno <> 0)
goto error
commit transaction
Return @@rowcount
error:
raiserror @verrno @verrmsg --Esta es la línea que en el SQL 2008 corre perfecto y en el 2019 marca error.
rollback transaction
END