如何在SQL server中对SQL更新查询使用逻辑OR运算符?

如何在SQL server中对SQL更新查询使用逻辑OR运算符?,sql,sql-server,Sql,Sql Server,我可以写一些像这样的查询吗 我想更新表,但我不确定需要更新多少列以及可以应用多少条件。我完全依赖于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), @

我可以写一些像这样的查询吗

我想更新表,但我不确定需要更新多少列以及可以应用多少条件。我完全依赖于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 ) 
有什么帮助吗

update table199999

set 
   category=case when @category='' then category else @CategoryNew end,
   manufacture=case when @manufature='' then manufacture else @manufactureNew end

依此类推,您可以在中使用条件

UPDATE TABLE 
SET (MANUFACTURE = @MANUFACTURE, CATEGORY = @CATEGORY)
WHERE MANUFACTURE IN (@OPTION1, @OPTION2) 
OR CATEGORY IN (@CATEGORY1, @CATEGORY2)

代码错误,请说明您需要做什么。何时更新类别字段?我猜如果@category=''不要更改类别,否则如果category=@categoryold set category=@categorynew,SQL中的工作单元是行,而不是列。