动态更新存储过程SQL Server

时间:2014-05-19 22:40:14

标签: c# sql sql-server dynamic

我有一张包含30多个字段的表格。许多字段允许NULL。我的问题是,如果我想更新更改值的字段,我该如何使用存储过程?目前我正在选择一个特定的行并将所有当前值存储在表中。接下来,我必须将每个变量与新变量进行比较以查看它们是否不同,如果是,则将该字段名称和新变量添加到字符串查询中。然后执行。有更有效的方法吗?如您所想,比较所有30多个字段是一件痛苦的事,特别是因为许多字段都是Nullable。谢谢。

所以这是我在存储过程中的逻辑:

  1. 拥有所有可以为空的参数并将它们设置为null(因为它是可选的)。
  2. 为我将要测试的每个字段(30多个字段)DECLARE变量
  3. 按照从参数(主键)传入的ID选择行标识。
  4. 将所有值存储到每个变量中。
  5. 检查每个值以查看它是否为空。如果是这样,那意味着用户没有提供该字段,因此该字段不需要更新。如果参数值为IS NOT NULL,则从数据库中检查它是否为SELECTED值。如果值为!=,则将其添加到要更新的查询字符串中。
  6. 执行更新查询字符串。

0 个答案:

没有答案