I want to return if there is a record in my table then return it and if that table haven't a record,then return 'America/Chicago'.
Error: Msg 102, Level 15, State 1, Procedure ufn_GetGCMoodleTimeZone, Line 18 [Batch Start Line 7] Incorrect syntax near '@MoodleTimeZone'. Msg 102, Level 15, State 1, Procedure ufn_GetGCMoodleTimeZone, Line 22 [Batch Start Line 7] Incorrect syntax near 'END'.
ALTER FUNCTION [dbo].[ufn_GetGCMoodleTimeZone]
( @HSATimeZone VARCHAR(250) )RETURNS varchar(250)
AS
BEGIN
DECLARE @MoodleTimeZone varchar(250)
SELECT @MoodleTimeZone = GCMoodleTimeZoneMap.MoodleTimeZone
FROM GCMoodleTimeZoneMap
WHERE GCMoodleTimeZoneMap.HSATimeZone = @HSATimeZone
IF @MoodleTimeZone='NULL'
BEGIN
@MoodleTimeZone='America/Chicago'
END
RETURN @MoodleTimeZone
END
@MoodleTimeZone='America/Chicago'-->SET @MoodleTimeZone='America/Chicago'. Also,@MoodleTimeZone='NULL'should be@MoodleTimeZone IS NULL'. You could easily rewrite this to a table valued function to increase performance (and readability).