当并非所有值都存在时,最佳方法是最有效地更新表记录(在我的情况下为主键)?

想像:

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 ...,就可以了。

07-26 06:07