我有一个包含3个字段的表
Example_Table
-------------
ID (identity)
SomeKey
SomeValue
此表中可能保存了150个值。显然,除了其中6个值之外的所有值都已更改-_-'我有一个包含新值的excel文档,并且我不期待尝试对其进行更新。作为程序员,我不禁觉得有一种比手动更好的方法,或者更糟糕的是丢弃表并用新值重建它。
有谁知道快速做这样的大规模更新?电子表格中的新值按照与它们配对的键(desc)进行逻辑排序/排序。
答案 0 :(得分:2)
如果您使用的是SQL Server 2012 Management Studio
类型:
UPDATE dbo.Example_Table SET SomeValue = '
重复3.将光标放在值之后,然后键入:
' WHERE SomeKey =
现在您已经有了一系列可以单独或完全运行的UPDATE语句。
如果您使用的是以前的版本
在新列的第一行中,键入:
UPDATE dbo.Example_Table SET SomeValue = '
在该单元格的右下角,使用十字拖动以在所有适用的行中重复该值。
在SomeValue和SomeKey之间重复2.和3.这次输入:
' WHERE SomeKey =
Replace with:
为空字符串,然后点击Replace All
(除非您的数据自然包含标签)。答案 1 :(得分:1)
将电子表格数据复制到新工作簿。使用键和带有值的列删除除列之外的所有内容。
在它们之间根据需要插入新列,并在它们之间添加UPDATE sql代码。
你最终会得到像
这样的东西Column A Column B Column C Col D UPDATE Example_Table SET SomeValue = '| value from column B |' WHERE SomeKey = '| value from column D '
(抱歉标记 - 欢迎格式化帮助)
稍微削减&粘贴你将有150个更新语句。将它们复制到SQL Server并执行。您可能希望先将它们粘贴到记事本或等效文件中,以检查标签等。
这应该是一个5分钟的工作。
答案 2 :(得分:1)
有几种方法可以将Excel文档中的数据导入SQL Server。 Microsoft列出了几种方法here.就个人而言,我一直使用管理工作室附带的导入向导。
无论哪种方式,你都应该得到一个包含键和值的表。然后你可以使用这样的查询:
UPDATE mt
SET Value = temp.Value
FROM myTable mt
INNER JOIN importedTable temp on mt.Key = temp.Key