2010-12-11 33 views
0
ALTER PROC [Schema1].[SetDefaultBAdd] 
(
    @UserAddDetailID bigint, 
     @IsB bit 
) 
AS 
BEGIN 
    UPDATE Schema1.UserAddDetails 

SET IsDefault = 1 WHERE [email protected] AND [email protected] 

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

) 
AS 
BEGIN 
    UPDATE Schema1.UserAddDetails SET IsDefault = 0 WHERE [email protected] AND [email protected] 

END 


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

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

SET IsDefault = 1 WHERE [email protected] AND [email protected] 

END 

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



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

) 
AS 
BEGIN 
    UPDATE Schema1.UserAddDetails SET IsDefault = 0 WHERE [email protected] AND [email protected] 

END 
+0

你真的連*需要*此存儲過程,使用ASP.NET給你,和你做的是一個基於b值更新表?爲什麼不使用經典的ADO.NET調用,並且可以在代碼中動態創建查詢。 – RPM1984 2010-12-11 07:04:24

回答

1

如果你只想要一個PROC:

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 
+0

我不確定這是不是我想要的..我的意思是IsDefault的值沒有被作爲參數傳遞給SP時,它被設置在SP本身基於其他參數values..u hv寫SET IsDefault = @IsDefault ... IsDefault不會從代碼 傳遞到SP – Serenity 2010-12-11 06:44:49

+0

@Serenity - 我已經用您的額外要求更新了答案。 – 2010-12-11 06:54:33

+0

謝謝,我只是試試這:) – Serenity 2010-12-11 07:23:36