ケースステートメントがあります:
UPDATE
Answer
SET
AnswerID = @AnswerID,
AnsweredBy = CASE WHEN LEN(@AnsweredBy) > 0 THEN @AnsweredBy END
いつ@AnsweredBy
でも列をnullにNULL
設定します。AnsweredBy
これを行うことで、nullもテストしようとしました:
UPDATE
Answer
SET
AnswerID = @AnswerID,
AnsweredBy = CASE WHEN @AnsweredBy IS NOT NULL THEN @AnsweredBy END
answeredby
つまり、値がない限り列を更新したくないということです。
私の C# コードでも、ストアド プロシージャに値を渡しません。
if (answeredBy.Length > 0)
cmdSelect.Parameters.Add("@AnsweredBy", SqlDbType.VarChar).Value = answeredBy;
値がなければ。そして、私の sproc では、その列変数をデフォルトで null にします。
@RunoffAnswerID bigint,
@AnswerID varchar(3)=NULL,
@AnsweredBy varchar(50)=NULL,
だから私の質問は、残りの更新をどのように実行するのansweredby
です@AnsweredBy
か?