IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportDAS]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportDAS] 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_DBExportDAS]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[foo_DBExportDAS] ( ) RETURNS xml AS BEGIN RETURN isnull(( SELECT [DASId] ,[SerialNumber] ,[Type] ,[MaxModules] ,[MaxMemory] ,[MaxSampleRate] ,[MinSampleRate] ,[FirmwareVersion] ,[CalDate] ,[ProtocolVersion] ,[LastModified] ,[LastModifiedBy] ,[Version] ,[LocalOnly] ,[LastUsed] ,[LastUsedBy] ,[Connection] ,[Channels] ,[Position] ,[ChannelTypes] ,[Reprogramable] ,[Reconfigurable] ,[IsModule] --,[PositionOnDistributor] --,[PositionOnChain] --,[Port] --,[ParentDAS] ,dbo.foo_DBExportDASChannel([DASId]) FROM [dbo].[DAS] DASHardware for xml auto, BINARY BASE64, root(''DASList'')), '''') END ' END GO