1
我有一个数据库表,它有大量的列。我想编写一个T-SQL存储过程,它将更新该表中的记录,并且我希望使用该过程来更新所有或唯一的特定列,以便如果传递NULL值的任何列值都不应超过现有值被改变。目前,我可以像使用这些更新SQL Server表中的特定列并忽略空值
UPDATE table
SET column1 = COALESCE(@param1, column1),
column2 = COALESCE(@param2, column2),
...
WHERE id = @id
或
UPDATE table
set column1 = isnull(@param1,column1),
column2 = isnull(@param2,column2)
他们都行之有效的解决方案,我唯一的问题是,有时我想明确地保存无效在任一列,我不能用它做以上解决方案有人可以告诉我该怎么办?
詹姆斯感谢这个解决方案,它看起来非常简单的解决方案,以实现唯一的问题是,对于大的表,我们需要创建更新存储过程这么多额外的参数,但到目前为止,这是最好的解决方案,我有直至除非别人带来另一种解决方案。再次感谢。 – Waqas