我可以写这样的查询吗?
我想更新表,但我不确定需要更新多少列以及我可以应用多少条件。我完全依赖于SQL参数。
以下是我的示例SQL查询:
CREATE PROCEDURE UpdateRecords
(
@Category AS VARCHAR(20)='',
@Manufature AS VARCHAR(20)='',
@Model AS VARCHAR(20)='',
@CategoryNew AS VARCHAR(20),
@ManufatureNew AS VARCHAR(20),
@ModelNew AS VARCHAR(20),
@CategoryOld AS VARCHAR(20),
@ManufatureOld AS VARCHAR(20),
@ModelOld AS VARCHAR(20)
)
AS
UPDATE table19999
SET (@category='' OR category=@CategoryNew),
(@Manufature='' OR Manufature=@ManufatureNew),
(@Model='' OR Model=@ModelNew)
WHERE (@category='' OR category=@CategoryOld ) AND
(@Manufature='' OR Manufature=@ManufatureOld ) AND
(@Model='' OR Model=@ModelOld )
任何帮助?
答案 0 :(得分:1)
update table199999
set
category=case when @category='' then category else @CategoryNew end,
manufacture=case when @manufature='' then manufacture else @manufactureNew end
等等
答案 1 :(得分:0)
您可以在..中使用条件
UPDATE TABLE
SET (MANUFACTURE = @MANUFACTURE, CATEGORY = @CATEGORY)
WHERE MANUFACTURE IN (@OPTION1, @OPTION2)
OR CATEGORY IN (@CATEGORY1, @CATEGORY2)