0

我有一个包含 3 个字段的表

Example_Table
-------------
ID (identity)
SomeKey
SomeValue

该表中可能保存了 150 个值。显然,除了 6 个值之外,所有这些值都发生了变化 -_-' 我有一个包含新值的 excel 文档,我不期待尝试对其进行更新。作为一名程序员,我不禁觉得有比手动执行更好的方法,或者更糟糕的是删除表并使用新值重建它。

有谁知道像这样进行大规模更新的快速方法?电子表格中的新值按与它们配对的键 (desc) 进行逻辑排序/排序。

4

3 回答 3

2

如果您使用的是 SQL Server 2012 Management Studio

  1. 确保 Excel 中的列首先与 SomeValue 对齐,其次是 SomeKey(或 ID)。
  2. 突出显示整个范围,单击Ctrl+ C,切换到 Management Studio 中的新查询窗口,然后单击Ctrl+ V
  3. 在第一行的开头突出显示光标,按住Shift+Alt并使用向下箭头滚动到最后一行。
  4. 类型:

    UPDATE dbo.Example_Table SET SomeValue = '
    
  5. 重复 3. 将光标放在值之后,然后键入:

    ' WHERE SomeKey =
    

现在您已经有了一系列可以单独或一起运行的 UPDATE 语句。

如果您使用的是以前的版本

  1. 确保 Excel 中的列首先与 SomeValue 对齐,其次是 SomeKey(或 ID)。
  2. 在 SomeValue 之前插入一个新列。
  3. 在新列的第一行中,键入:

    UPDATE dbo.Example_Table SET SomeValue = '
    
  4. 在该单元格的右下角,用叉号拖动以在所有适用的行中重复该值。

  5. 在 SomeValue 和 SomeKey 之间重复 2. 和 3.,这次输入:

    ' WHERE SomeKey = 
    
  6. 对新列重复 4.。
  7. 突出显示整个范围,单击Ctrl+ C,切换到 Management Studio 中的新查询窗口,然后单击Ctrl+ V
  8. 您可能需要搜索和替换制表符。突出显示一个,点击Ctrl+ CCtrl+ HTab并确保Replace with:是一个空字符串,然后单击Replace All(除非您的数据可能自然包含选项卡)。
于 2013-10-01T18:59:44.660 回答
1

将电子表格数据复制到新工作簿。删除除包含键的列和包含值的列之外的所有内容。

在它们之间根据需要插入新列,并在它们之间添加 UPDATE sql 代码。

你会得到类似的东西

A 列 B 列 C 列 D 列
更新 Example_Table SET SomeValue = '| B列的值|' WHERE SomeKey = '| 来自 D 列的值'

(对标记感到抱歉-欢迎格式化帮助)

稍加剪切和粘贴,您将拥有 150 条更新语句。将它们复制到 SQL Server 并执行。您可能需要先将它们粘贴到记事本或同等工具中,以检查标签等。

这应该是一个5分钟的工作。

于 2013-10-01T18:59:14.487 回答
1

有几种方法可以将 Excel 文档中的数据导入 SQL Server。微软在这里列出了几种方法 就个人而言,我一直使用管理工作室自带的导入向导。

无论哪种方式,您最终都应该得到一个包含键和值的表。然后你可以使用这样的查询:

UPDATE mt
SET Value = temp.Value
FROM myTable mt
INNER JOIN importedTable temp on mt.Key = temp.Key
于 2013-10-01T19:00:40.163 回答