severity - No puedo usar THROW SQL Server 2008 R2
throw sql 2016 (2)
Se introduce la sentencia THROW
en SQL Server 2012
http://msdn.microsoft.com/en-us/library/ee677615.aspx
Puedes usar RAISERROR
en RAISERROR
lugar.
http://msdn.microsoft.com/en-us/library/483588bd-021b-4eae-b4ee-216268003e79(v=sql.105)
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH;
SQL Server 2008 R2 Management Studio no reconoció mi lanzamiento en el siguiente ejemplo, dice
sintaxis incorrecta cerca de Throw
Estoy intentando emitir un error aquí, por lo que puedo manejarlo en mi sitio web cuando alguien inserta el mismo valor dos veces.
Begin Try
insert into BusinessID (BusinessID) values (@ID)
insert into BusinessID (BusinessID) values (@ID)
End Try
Begin Catch
Print ''PK already exist''
THROW
End Catch
Use RAISERROR lugar de Throw en su bloque sql.
Begin Try
insert into BusinessID (BusinessID) values (@ID)
insert into BusinessID (BusinessID) values (@ID)
End Try
Begin Catch
Print ''PK already exist''
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Use RAISERROR inside the CATCH block to return error
-- information about the original error that caused
-- execution to jump to the CATCH block.
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
End Catch