IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportGroupSensors]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportGroupSensors] 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_DBExportGroupSensors]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportGroupSensors] ( @TestObjectId varchar(50) ) RETURNS xml AS BEGIN RETURN isnull((SELECT [SensorId] ,[LocalOnly] ,[DASId] ,[DASSerialNumber] ,[ISOChannel] ,[ISOChannelId] ,[ChannelId] ,[ChannelIdx] ,[ZoneId] from (SELECT [SensorId] ,Sensor.[LocalOnly] ,d.DASId ,d.SerialNumber as ''DASSerialNumber'' ,Sensor.ISOChannel ,Sensor.ISOChannelId ,Sensor.ChannelId ,Sensor.ChannelIdx ,Sensor.ZoneId FROM [dbo].[TestObjectSensors] Sensor inner join [dbo].[DAS] d on d.DASId = Sensor.DASId where TestObjectId = @TestObjectId) Sensor for xml auto, BINARY BASE64, root (''Sensors'')), '''') END ' END GO