IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_SensorsXML]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_SensorsXML] 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_SensorsXML]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_SensorsXML] ( ) RETURNS xml AS BEGIN RETURN (SELECT Sensors.Analog, Sensors.DigitalIn, Sensors.DigitalOut, Sensors.Squib from( select dbo.foo_SensorsAnalog() as Analog , (select dbo.foo_SensorsDigitalIn()) as DigitalIn , (select dbo.foo_SensorsDigitalOut()) as DigitalOut , (select dbo.foo_SensorsSquib()) as Squib ) Sensors for xml auto) END ' END GO