как обрабатывать необязательные параметры в хранимой процедуре обновления - PullRequest
0 голосов
/ 11 марта 2010

Мне нужно написать общую процедуру, которая устанавливает значение для одного или нескольких столбцов в таблице в зависимости от параметров. Есть идеи, как это сделать.

1 Ответ

0 голосов
/ 11 марта 2010

Я думаю, вы хотите что-то вроде:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...