IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportGroupTemplate]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportGroupTemplate] 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_DBExportGroupTemplate]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportGroupTemplate] ( ) RETURNS xml AS BEGIN RETURN isnull((SELECT [TemplateName] ,[TemplateId] ,[Icon] ,[Description] ,[LocalOnly] ,[Version] ,[LastModifiedBy] ,[LastModified] ,[CRC32] ,[TestObjectType] ,[TestObject] ,[TestObjectId] ,[ParentTemplate] ,[SysBuilt] ,[OrigTemplateName] ,[Embedded] ,[dbo].[foo_DBExportGroupTemplateChannel]([TestObjectId]) from( SELECT gt.[TemplateName] ,gt.TemplateId ,gt.[Icon] ,gt.[Description] ,gt.[LocalOnly] ,gt.[Version] ,gt.[LastModifiedBy] ,gt.[LastModified] ,gt.[CRC32] ,gt.[TestObjectType] ,tobj.TestObjectName as [TestObject] ,tobj.TestObjectId as [TestObjectId] ,gt.[ParentTemplate] ,gt.[SysBuilt] ,gt.[OrigTemplateName] ,gt.[Embedded] FROM [dbo].[TestObjectTemplates] gt inner join [dbo].[TestObjects] tobj on tobj.TemplateId = gt.TemplateId) GroupTemplate for xml auto, elements, BINARY BASE64, root (''GroupTemplates'')), '''') END ' END GO