Я думаю, вы хотите что-то вроде:
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
.