Using RAISERROR isn't working in SQL Server 2005?
Error is occurring because you directly using function in Raiserror
(notice single e) so to avoid this try the below code
Try this is working for me
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;
RAISERROR follows the same rules as any other stored procedure call. Parameters passed in must be a constant or a variable. You cannot pass a function directly as a parameter. See Executing Stored Procedures for documentation on this.
/* Demo Code - Functions accept functions as parameters
while stored procedures do not */
create function dbo.fnDayOfWeek
(@date datetime)
returns int
as
begin
declare @x int
set @x = DATEPART(day,@date)
return (@x)
end
go
/* Both statements are successful */
select dbo.fnDayOfWeek('2010-08-06')
go
select dbo.fnDayOfWeek(GETDATE())
go
drop function dbo.fnDayOfWeek
go
create procedure DayOfWeek
@date datetime
as
begin
select DATEPART(day,@date)
end
go
/* First call succeeds, second fails */
exec DayOfWeek @date = '2010-08-06'
go
exec DayOfWeek @date = getdate()
go
drop procedure DayOfWeek
go