IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_UserPropertiesGet]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_UserPropertiesGet] 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].[sp_UserPropertiesGet]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_UserPropertiesGet] AS' END GO ALTER PROCEDURE [dbo].[sp_UserPropertiesGet] @UserId int = null ,@PropertyId int = null AS BEGIN SET NOCOUNT ON; SELECT [UserId] ,[PropertyId] ,[PropertyValue] FROM [dbo].[UserProperties] where (@UserId is null or [UserProperties].UserId = @UserId) and (@PropertyId is null or PropertyId = @PropertyId) END GO