C# 如何合并以下4个SP使其成为一个或可能是2个?

C# 如何合并以下4个SP使其成为一个或可能是2个?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,如果您只需要一个过程: ALTER PROC [Schema1].[SetDefaultBAdd] ( @UserAddDetailID bigint, @IsB bit ) AS BEGIN UPDATE Schema1.UserAddDetails SET IsDefault = 1 WHERE UserAddDetailID=@UserAddDetailID AND IsB=@IsB END -------------------------------

如果您只需要一个过程:

ALTER PROC [Schema1].[SetDefaultBAdd]
(
    @UserAddDetailID bigint,
        @IsB bit
)
AS
BEGIN
    UPDATE Schema1.UserAddDetails

SET IsDefault = 1 WHERE UserAddDetailID=@UserAddDetailID AND IsB=@IsB

END
--------------------------------------------------------------------------
ALTER PROC [Schema1].[SetNotDefaultBAdd]
(
    @UserID bigint,
    @IsB bit

)
AS
BEGIN
    UPDATE Schema1.UserAddDetails SET IsDefault = 0 WHERE UserID=@UserID AND IsB=@IsB

END


--------------------------------------------------------------------------

ALTER PROC [Schema1].[SetDefaultShAdd]
(
    @UserAddDetailID bigint,
        @IsSh bit
)
AS
BEGIN
    UPDATE Schema1.UserAddDetails

SET IsDefault = 1 WHERE UserAddDetailID=@UserAddDetailID AND IsSh=@IsSh

END

--------------------------------------------------------------------------



ALTER PROC [Schema1].[SetNotDefaultShAdd]
(
    @UserID bigint,
    @IsSh bit

)
AS
BEGIN
    UPDATE Schema1.UserAddDetails SET IsDefault = 0 WHERE UserID=@UserID AND IsSh=@IsSh

END

我不确定这是否是我想要的。我的意思是调用SP时IsDefault的值没有作为参数传递。它是根据其他参数值在SP中设置的。u hv WRITED set IsDefault=@IsDefault…IsDefault不会从代码传递到SP@Serenity-我已经用你的额外要求更新了答案。你呢考虑到您使用ASP.NET,并且您所做的一切都是基于值b更新表a,您真的需要存储过程吗?为什么不使用一个经典的ADO.NET调用,您就可以在代码中动态创建查询了。
CREATE PROCEDURE [Schema1].[SuperDuperProcedure]
(
  @UserID             bigint = NULL,
  @UserAddDetailID    bigint = NULL,
  @IsB                bit,
  @IsSh               bit
)
AS
BEGIN
  UPDATE
    Schema1.UserAddDetails
  SET
    IsDefault = 0
  WHERE
    UserID = @UserID
    AND
    (IsB = @IsB OR IsSh = @IsSh)

  UPDATE
    Schema1.UserAddDetails
  SET
    IsDefault = 1
  WHERE
    UserAddDetailID = @UserAddDetailID
    AND
    (IsB = @IsB OR IsSh = @IsSh)
END