IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_IdGetRecordingMode]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_IdGetRecordingMode] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_IdGetRecordingMode]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_IdGetRecordingMode] ( @RecordingMode varchar(50) ) RETURNS int AS BEGIN declare @RecordingModeId int set @RecordingModeId = 0 if(exists(select RecordingModeId from [dbo].[RecordingModes] where RecordingMode = @RecordingMode)) begin select @RecordingModeId = RecordingModeId from [dbo].[RecordingModes] where RecordingMode = @RecordingMode end return @RecordingModeId END ' END GO