当并非所有值都存在时,最佳方法是最有效地更新表记录(在我的情况下为主键)?
想像:
PRIMARY_KEY1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5, COLUMN_6, ...
我总是得到像
(PRIMARY_KEY1, COLUMN_5, COLUMN_4)
或(PRIMARY_KEY1, COLUMN_2, COLUMN_6, COLUMN_3)
这样的元组,并且只想以最快的方式更新它们,而不必为所有其他值进行数据库查找。由于必须非常快地执行此操作,因此我想对预处理语句使用批处理之类的内容,以防止出现大量的数据库请求。
感谢您的所有回复!
最佳答案
您可以通过期望SQL在行访问时填写值来“作弊”。例如,这种类型的陈述:
UPDATE MyTable SET (column_1, column_2, ..., column_6)
= (COLAESCE(@suppliedValue1, column_1),
COLAESCE(@suppliedValue2, column_2),
...,
COLAESCE(@suppliedValue6, column_6))
WHERE primary_Key1 = @primaryKey
然后,在填写参数时,只要保留未提供的
null
...,就可以了。