如何处理更新存储过程中的可选参数

时间:2010-03-11 10:42:59

标签: sql-server-2005

我需要编写一个通用过程,根据参数设置表中一列或不列的值。不知道怎么做。

1 个答案:

答案 0 :(得分:0)

我猜你想要的东西是:

CREATE PROC UpdateProc  
@RowID UNIQUEIDENTIFIER,
@Parameter1 NVARCHAR(50) NULL,
@Parameter2 INT NULL

AS

SET NOCOUNT ON
GO

IF @Parameter1 IS NOT NULL
BEGIN 
    UPDATE MyTable
    SET Column1 = @Parameter1
    WHERE ID = @RowID
END

IF @Parameter2 IS NOT NULL
BEGIN
    UPDATE MyTable
    SET Column2 = @Parameter2
    WHERE ID = @RowID
END

它感觉不是特别优雅,但如果你不知道/不能保证哪些参数将被传递,我不知道比NULL依次测试它们更好的方法。< / p>