私は人テーブルの更新を処理するストアドプロシージャを持っています。私はすべての列を更新するとは限らないので、いくつかの手続きパラメータに対してデフォルト値(null)を提供しています。しかし、私がperson.middleinitialをnullに設定したいのであればどうしますか?手順は私の意図をどのように知っていますか?SQL Serverストアドプロシージャのnull可能な列を更新する方法
現実に私の人のテーブルにはたくさんのカラムがあり、多くはnullableであるため、これはソリューションによっては重荷になる可能性があります。
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 [email protected]
END
フラグを追加できます。 '@SetMI as Bit = 0'は、値を適用する意図を示します。 'UPDATE'ステートメントは、 'CASE'を使用して古い値をリサイクルするか、新しい値を適用するかを決定します。 – HABO