IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportTestSetupMetaData]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportTestSetupMetaData] 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_DBExportTestSetupMetaData]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportTestSetupMetaData] ( @TestSetupId int ) RETURNS xml AS BEGIN RETURN isnull((select [TestObject] ,[TestSetupId] ,[PropName] ,[PropValue] ,[Optional] ,[Version] from (select ts.TestSetupName as [TestObject] ,ts.TestSetupId as [TestSetupId] ,[PropName] ,[PropValue] ,[Optional] ,[Version] from [dbo].[TestSetupObjectMetaData] md inner join [dbo].[TestSetups] ts on ts.TestSetupId = md.TestSetupId where md.[TestSetupId] = @TestSetupId) MetaData for xml auto, elements, BINARY BASE64, root (''MetaDatas'')), '''') END ' END GO