IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportTestSetup]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportTestSetup] 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_DBExportTestSetup]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportTestSetup] ( ) RETURNS xml AS BEGIN RETURN isnull((select [TestSetupName] , [TestSetupId] , [dbo].[foo_DBExportTestSetupGroupsAdded]([TestSetupId]) , [dbo].[foo_DBExportTestSetupGroups]([TestSetupId]) , [dbo].[foo_DBExportTestSetupGraphs]([TestSetupId]) , [dbo].[foo_DBExportTestSetupFields]([TestSetupId]) , [dbo].[foo_DBExportTestSetupHardware]([TestSetupId]) , [dbo].[foo_DBExportTestSetupMetaData]([TestSetupId]) from [dbo].[TestSetups] TestSetup for xml auto, BINARY BASE64, root (''TestSetups'')), '''') END ' END GO