当前位置: 首页 > 面试题库 >

将多行更新到SQL表

晁绍辉
2023-03-14
问题内容

假设有一个完全填充的数据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,则可以使用SqlBulkCopy。首先,您必须将数据放在DataTable中,这很容易,因为您已经将其存储在字符串数组中。

http://msdn.microsoft.com/zh-
CN/library/system.data.sqlclient.sqlbulkcopy.aspx



 类似资料:
  • < b >想改进这个问题?通过编辑此帖子添加详细信息并澄清问题。 我有一个包含列A,B,C的表。 如果A和B(A和B一起是唯一的)我想更新列C,因此伪代码如下所示: 我该如何用SQL编写?

  • 问题内容: 我创建了一个SQL查询,该查询更新了一个表列,其中另一列=值 代码: 问题出在。如何使其使用这些ID更新列? 问候。 问题答案: 替换为

  • 正如我已经在这里发现的那样 在堆栈溢出上,可以通过执行类似操作来更新一个查询中的多个行 特别感谢@Roman Pekar的明确回答。 现在我正在尝试将这种更新方式与查询NodeJS中的postgreSQL数据库合并。 这是我的代码片段: 我没有得到错误,但它不会更新我的表,我真的不知道这里出了什么问题。可能是查询代码中的语法错误?在NodeJS-pg包中更新时,我没有找到任何具体的多行查询示例

  • 问题内容: 我想在日期基础上更新一行。问题是,由于我的错误,我有两行相同的数据。如何仅在一行上运行更新? 问题答案: 表通常具有唯一的ID。您应该对此进行过滤。 例如, 如果您的表没有唯一的ID,请考虑添加一个:带有和的列。

  • 问题内容: 我想更新表的所有字段的值为“ PCNAME”。我要更新的表名是XYZ。我只想更新一些字段而不保留一些不变。 这会影响很多行而不是一行,因为会有很多行带有NAME =’PCNAME’。我如何使用JPA做到这一点。我有与此表关联的实体类。 问题答案: 您既可以采用面向对象的方式,也可以使用更新查询。 面向对象: 使用更新查询(未试用): 显然,第二个版本的性能更好。

  • 问题内容: 我需要执行选择,然后以原子方式更新其中的一些行。 我正在使用的代码如下所示(简化): 我可以保证更新将自动执行吗?如果没有,我如何保证? 如果任何其他进程更改了您通过其更新的数据库行,该怎么办?有什么方法可以锁定行? 问题答案: 这里可能有很多技术和概念在起作用,当您开始考虑多线程/多请求应用程序时,事情就会变得相当棘手。 正如Iassevk所说,您应该研究使用事务来确保更新的原子性-