我有大約10個不同的sql語句更新不同的表。他們看起來類似於這樣的:SQL僅在條件上加入?
Update Y
SET x = n
Where something = @somevar
現在我只需要更新@hasRows var時設置的某些行。我可以簡單地這樣做:
if not @hasRows is null
begin
Update Y
SET x = n
from Y inner join #items on y.Item = #items.Item
Where something = @somevar
end
else
begin
Update Y
SET x = n
Where something = @somevar
end
有沒有辦法避免if/else並在一個語句中進行更新?
我正在使用SQL2005。
n如何在#items上加入? – 2011-04-26 21:05:13
@Nitin n不會改變。該更新僅更新使用內部聯接匹配的項目。我們的目標是更新#items和Y中存在的全部或者全部內容。 – vikasde 2011-04-26 21:07:01
無論如何,如果您想要更新所有行,您將如何讓@items包含所有行?無論如何,這將允許您使用內部連接更新查詢。 – Nik 2011-04-26 21:08:48