我有一個case語句:更新列的是即使我不希望它發生
UPDATE
Answer
SET
AnswerID = @AnswerID,
AnsweredBy = CASE WHEN LEN(@AnsweredBy) > 0 THEN @AnsweredBy END
即使@AnsweredBy
是NULL
它仍然設置AnsweredBy
列設置爲空。
我試着做這個測試空以及:
UPDATE
Answer
SET
AnswerID = @AnswerID,
AnsweredBy = CASE WHEN @AnsweredBy IS NOT NULL THEN @AnsweredBy END
含義我不想更新answeredby
列,除非有一個值。除非有一個值
if (answeredBy.Length > 0)
cmdSelect.Parameters.Add("@AnsweredBy", SqlDbType.VarChar).Value = answeredBy;
:
即使在我的C#代碼我沒有一個值傳遞給我的存儲過程。而在我的存儲過程我默認該列變量設置爲null:
@RunoffAnswerID bigint,
@AnswerID varchar(3)=NULL,
@AnsweredBy varchar(50)=NULL,
所以我的問題是我如何執行我的其餘更新,因爲有大約5-10多列,但如果只更新answeredby
@AnsweredBy
的值?
你的語句更新每一個記錄。這是正確的,還是應該只更新一條記錄?如果你不想***每個***記錄被更新,你需要一個'WHERE'子句... – MatBailie
你的問題是你不告訴它如果沒有滿足案例分析行動該怎麼做,所以它沒有價值。下面的答案都可以,但我想解釋你爲什麼沒有。 – HLGEM
德姆我沒有發佈我的整個查詢。 – oJM86o