IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_DBExportUsers]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_DBExportUsers] 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_DBExportUsers]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_DBExportUsers] ( ) RETURNS xml AS BEGIN RETURN isnull(( SELECT [ID] ,[UserName] ,[DisplayName] ,[Password] , dbo.foo_DBExportGetUserUIPermisions([ID]) as IUIItemPermissions , dbo.foo_DBExportGetUserUIVisibility([ID]) as IUIItemVisibility ,[Role] ,[LastModified] ,[LastModifiedBy] ,[LocalOnly] -- TODO: UserTags FROM [dbo].[Users] [User] for xml auto, elements, BINARY BASE64, root (''Users'')), '''') END ' END GO