2012-11-29 12 views
1

我正在嘗試在大小寫查詢中使用大小寫,它給了我一個錯誤,說明大小寫不正確的語法。我不知道在哪裏?!這是在SQL 2005中在更新查詢中使用大小寫

我正在發送日期到存儲過程。如果發送日期是'01/01/1905',則必須保存空值,否則輸入真實日期。我真的不確定這個聲明有什麼問題。

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 

在此先感謝!

+0

案例需要一個左側的列,你有什麼打算這種情況下,聲明呢? –

+0

我明白了。你的回答完美無缺 – Ram

回答

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 
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 
+0

謝謝!我知道了! – Ram