我有大约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