假设有一个完全填充的数据String [n] [3] myData数组。
我想做这个:
for (String[] row : myData) { SQL = "update mytable set col3 = row[2] where col1 = row[0] and col2=row[1];" } 显然,我遗漏了很多东西,但是我想尽可能简洁地表达这个想法。
有一个简单的方法可以在单个DB命令中执行此操作吗?一个不太简单的方法怎么样?
编辑:数据不是来自另一个表(这是Web表单提交-多项选择考试)。 由于该应用是面向Web的,因此必须是防注入的。参数化查询是我的首选方法。 我正在使用MS-SQL Server 2005
编辑:关闭,并作为多个数据库更新重新询问:
编辑:重新打开,因为这似乎是一个受欢迎的问题
问题来源于stack overflow
这取决于您使用的数据库。如果您使用的是SQL Server 2008,则可以使用存储过程TABLE参数。这使您可以将所有值传递到单个表中的存储过程中,然后可以执行以下操作:
update mytable set mytable.col1 = @tbl.col1 from mytable inner join @tbl on mytable.col2 = @tbl.col2 如果使用的是SQL Server 2005,则可以使用XML。将您的值格式化为XML,然后使用XQuery语句(即“节点”和“值”)来解析XML。这也可以在单个SQL语句中完成,并且不需要存储过程。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。