que tenían la misma pregunta por lo que me encontré con este post. Por lo que puedo ver, en realidad hay una diferencia y la ortografía no es lo único diferente entre los dos casos. Estas dos funciones no son equivalentes debido al uso.
Enlaces y colores
- RAISERROR - tiene un enlace de MSDN y es de color cian/azul en SSMS
- RAISEERROR - No tiene un enlace de MSDN de lo que puedo encontrar en este momento y es de color magenta en SSMS
Crédito donde se debe crédito - la observación del color fue ra ya lo hizo el usuario Sahuagin en los comentarios de la pregunta anterior.
¿Está utilizando SQL Server 2012?
Antes de continuar, creo que es justo decir que si está utilizando SQL Server 2012 o superior, ¡NO USE RAISERRROR! Debería estar usando THROW.
¿Cuál es la diferencia?
Puede usar RAISERROR (azul) en una sola instrucción en línea, frente al uso de RAISEERROR (magenta) que depende de estar contenido dentro de un bloque de código diferente; basado en el error que se devuelve El error de sintaxis exacto es el siguiente:
Sintaxis incorrecta cerca de 'RAISEERROR'. Esperando CONVERSACIÓN, DIÁLOGO, DISTRIBUIDO O TRANSACCIÓN.
RAISERROR Ejemplo (Una E - azul)
DECLARE @foo varchar(200)
SET @foo = ''
IF NULLIF(@foo, '') IS NULL
BEGIN
-- To fix this line, remove one "E" to read RAISERROR
RAISEERROR('Not enough Vespene Gas!', 16, 1);
RETURN -- This is required otherwise execution will continue!
END
-- You need the RETURN above or this will execute
SELECT Critical_TSqlLine = 1;
Ahora si sólo quita una "E" en el código anterior, que funcionará muy bien. No proporcioné los resultados de la ejecución, pero si abre SSMS, lo coloca y lo ejecuta, le garantizo que funcionará.
RAISEERROR Ejemplo (Dos Es - magenta)
me pasó enteramente demasiado tiempo tratando de encontrar la manera de utilizar esta versión de la función y no puedo dar un ejemplo donde esto va a funcionar. Investigué usando CONVERSACIÓN, DIÁLOGO, DISTRIBUIDOS o TRANSACCIÓN y no pude conseguir que la sintaxis funcionara. Para resumir, no se preocupe por esta versión, solo use la versión E individual. Para aquellos de ustedes que usan SQL Server 2012, esto ya no debería preocuparlos de ninguna manera.
Lo que realmente me confundía es que los colores SSIS 'RAISEERROR' rosados y' RAISERROR' azules. –