Как обновить обнуляемый столбец в хранимой процедуре SQL Server - PullRequest
3 голосов
/ 13 января 2012

У меня есть хранимая процедура, которая заботится об обновлениях моей персональной таблицы.Я не всегда обновляю каждый столбец, поэтому я предоставил значения по умолчанию (null) для некоторых параметров процедуры.Но что, если я действительно хочу установить для person.middleinitial значение null?Откуда процедура знает мои намерения?

На самом деле моя личная таблица имеет множество столбцов, и многие из них обнуляются, так что это может стать обременительным в зависимости от решения.

ALTER PROCEDURE [dbo].[uspPerson_update]     
@id uniqueidentifier,     
@fname nvarchar(20) = NULL,     
@minitial nvarchar(1) = NULL,     
@lname nvarchar(20) = NULL 
AS BEGIN     
SET NOCOUNT ON;     
UPDATE Person      
SET 
fname=ISNULL(@fname,fname),          
minitial=ISNULL(@minitial,minitial),          
lname=ISNULL(@lname, lname)
WHERE id=@id 
END

1 Ответ

4 голосов
/ 13 января 2012

Не устанавливайте инициалы на NULL, устанавливайте их на нулевую длину / пустую строку ''.

Тогда вы можете определить разницу между "не указано" (NULL) и "без начального "('').

...