IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_IdGetDASChannel]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_IdGetDASChannel] 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_IdGetDASChannel]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_IdGetDASChannel] ( @DASId int ,@ChannelIdx int ) RETURNS int AS BEGIN RETURN isnull((select top 1 d.DASChannelId from [dbo].[DASChannels] d where d.DASId = @DASId and ChannelIdx = @ChannelIdx), 0) END ' END GO