1

Update クエリで Case を使用しようとしていますが、Case の近くに不正な構文があるというエラーが表示されます。どこかわからない!? これはSQL 2005にあります

ストアドプロシージャに日付を送信しています。送信日が '01/01/1905' の場合、null を保存する必要があります。それ以外の場合は、入力された実際の日付です。この声明のどこが間違っているのか、私にはよくわかりません。

Update Manifest set Notes = @Notes, IsCustom = @IsCustom,
CASE WHEN @ProofSent = CONVERT(datetime, '01/01/1905') THEN NULL ELSE @ProofSent END,
CASE WHEN @ProofApproved = CONVERT(datetime, '02/01/1905') THEN NULL ELSE @ProofApproved END 

前もって感謝します!

4

2 に答える 2

1

どの列に設定する必要があるかを宣言していません:

Update Manifest set Notes = @Notes, IsCustom = @IsCustom,
    ProofSent = CASE WHEN @ProofSent = CONVERT(datetime, '01/01/1905') THEN NULL ELSE @ProofSent END,
    ProofApproved = CASE WHEN @ProofApproved = CONVERT(datetime, '02/01/1905') THEN NULL ELSE @ProofApproved END
于 2012-11-29T20:29:04.767 に答える
0

これは次のようになります。

Update Manifest set Notes = @Notes, IsCustom = @IsCustom,
Column1 = 
    CASE WHEN @ProofSent = CONVERT(datetime, '01/01/1905') THEN NULL 
    ELSE @ProofSent END,
Column2=
    CASE WHEN @ProofApproved = CONVERT(datetime, '02/01/1905') THEN NULL 
    ELSE @ProofApproved END 
于 2012-11-29T20:31:23.567 に答える