[英]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
你也可以使用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.