簡體   English   中英

if-else條件用於更新SQL Server 2005中存儲過程中的表

[英]if-else condition for update a table in a stored procedure in SQL Server 2005

我想在指定的情況下更新一些數據,否則不會更新這些列。

我可以在存儲過程中為此編寫什么代碼?

您可以使用case來控制是分配新值還是保留舊值。

update <sometable>
set field = case when <condition> then <newvalue> else field end
where <condition>

例:

update questions
set reply = case when @input is not null then @input else reply end
where answer = 42

在Update子句中使用Case語句

喜歡

SQL聲明#6

UPDATE titles
       SET price =
                 CASE
                   WHEN (price < 5.0 AND ytd_sales > 999.99)
                                   THEN price * 1.25
                   WHEN (price < 5.0 AND ytd_sales < 1000.00)
                                   THEN price * 1.15
                   WHEN (price > 4.99 AND ytd_sales > 999.99)
                                   THEN price * 1.2
                   ELSE price
                 END

取自SQL SERVER UPDATE

你也可以使用if..else語句

如果你曾經在SQL SERVER 2008中,你可以利用MERGE語句的風格

舉個例子:

IF @a <= 0 
BEGIN
    UPDATE table SET counter = @a, name = 'Minati'
END
ELSE
BEGIN
    UPDATE table SET name = 'Minati'
END

可能是您可以在更新命令中構建條件,並可以使用不同的條件輕松運行多個更新。 它可能不是最優雅的方式,但它是有效的。 這取決於您的需求。

UPDATE table SET field=value WHERE <<condition>>
UPDATE table SET field=value2 WHERE <<condition2>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM