IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportDASChannel]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportDASChannel] 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_DBExportDASChannel]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportDASChannel] ( @dasId int ) RETURNS xml AS BEGIN RETURN isnull((SELECT [DASChannelId] ,[DASId] ,[DASSerialNumber] ,[Type] ,[ChannelIdx] ,[SupportedBridges] ,[SupportedExcitations] ,[DASDisplayOrder] ,[LocalOnly] ,[SupportedDigitalInputModes] ,[SupportedSquibFireModes] ,[SupportedDigitalOutputModes] ,[ModuleSerialNumber] ,[ModuleArrayIndex] from (SELECT [DASChannelId] ,d.[DASId] ,d.[SerialNumber] as DASSerialNumber ,d.[Type] ,[ChannelIdx] ,[SupportedBridges] ,[SupportedExcitations] ,[DASDisplayOrder] ,dch.[LocalOnly] ,[SupportedDigitalInputModes] ,[SupportedSquibFireModes] ,[SupportedDigitalOutputModes] ,[ModuleSerialNumber] ,[ModuleArrayIndex] FROM [dbo].[DASChannels] dch inner join [dbo].[DAS] d on d.DASId = dch.DASId where dch.DASId = @dasId ) DASChannel for xml auto, BINARY BASE64, root(''DASChannels'')), '''') END ' END GO