IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportSensorsSquib]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportSensorsSquib] 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_DBExportSensorsSquib]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportSensorsSquib] ( ) RETURNS xml AS BEGIN RETURN (SELECT [SensorId] ,[SensorType] ,[SquibDescription] ,[BypassFilter] ,[BypassVoltageFilter] ,[DelayMS] ,[DurationMS] ,[FireMode] ,[ISOCode] ,[MeasurementType] ,[SquibOutputCurrent] ,[SquibToleranceLow] ,[SquibToleranceHigh] ,[LimitDuration] ,[ArticleId] ,[LocalOnly] ,[Version] ,[LastModified] ,[LastModifiedBy] ,[UserValue1] ,[UserValue2] ,[UserValue3] ,[UserTags] from (SELECT s.id as [SensorId] ,s.[SensorType] ,[SerialNumber] as [SquibDescription] ,[BypassCurrentFilter] as [BypassFilter] ,[BypassVoltageFilter] ,[DelayMS] ,[DurationMS] ,[FireMode] ,[ISOCode] ,[MeasurementType] ,[SquibOutputCurrent] ,[SquibToleranceLow] ,[SquibToleranceHigh] ,[LimitDuration] ,[ArticleId] ,[LocalOnly] ,[Version] ,[LastModified] ,[LastModifiedBy] ,[UserValue1] ,[UserValue2] ,[UserValue3] ,[UserTags] FROM [dbo].[SensorsSquib] sq inner join [dbo].[Sensors] s on s.SensorId = sq.Id and s.SensorType = 3) SensorData for xml auto, BINARY BASE64) END ' END GO