IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportGroupChannels]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportGroupChannels] 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_DBExportGroupChannels]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportGroupChannels] ( @TestObjectId int ) RETURNS xml AS BEGIN RETURN isnull((SELECT [ChId] ,[sid] ,[SensorId] ,[Setting] from (SELECT [ChannelId] as ''ChId'' ,[SerialNumber] as ''sid'' ,v.[SensorId] ,[Setting] FROM [dbo].[TestObjectChannelSettings] ch inner join [dbo].[v_SensorSerialNumber] v on v.SensorId = ch.SensorId where ch.TestObjectId = @TestObjectId) ChannelSetting for xml auto, BINARY BASE64, root (''ChannelSettings'')), '''') END ' END GO