假设有一个完全填充的数据字符串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
编辑:关闭并重新询问多个数据库更新:
编辑:重新打开,因为这似乎是一个受欢迎的问题
这取决于您使用的数据库.如果您使用的是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语句(即"nodes"和"value")来解析XML.这也可以在单个SQL语句中完成,并且不需要存储过程.