我搜索了一些方法来检查SQL Server参数是否不为null或为空,但是我不确定更新几列时使用此方法的最佳方法是什么:
首先,我有这段代码在不检查空值或空值的情况下进行更新:
UPDATE [Users] SET FirstName = @firstname, City = @city, Address = @address, .... WHERE ID = @iduser
然后我IF在更新之前添加了一个子句,它以这种方式工作,但是我不确定这是否是最好的方法,如果我必须更新几列,那将很长。
IF
--Check if parameter is not null or empty before updating the column IF (@firstname IS NOT NULL AND @firstname != '') UPDATE [Users] SET FirstName = @firstname WHERE ID = @iduser IF (@city IS NOT NULL AND @city != '') UPDATE [Users] SET City = @city WHERE ID = @iduser ... ...
如果该值为Null或Empty,则不需要更新,只需将原始值保留在数据库中即可。
不知道如果空白,您将尝试实现什么,但是我会尝试使用IsNull()我不认为存在IsBlank(),但是写自己应该不会太难
IsNull()
IsBlank()
仅使用IsNull查询看起来像…
IsNull
Update [Users] set FirstName = IsNull(@FirstName, FirstName), City = IsNull(@City, City) .... Where ...
如果它们不为空,这将使用参数值更新该行,否则将其更新为自身,也就什么都没有改变。