0

这似乎是一项直截了当的任务,但我真的找不到一个好的方法。

我有一长串 id 和一长串要更新的字段(单个字段)的对应值

id = 1 | field = value_1 
id = 2 | field = value_2
.......................
id = n | field = value_n 

我可以将字段放在 2 个列表中(或我选择的任何其他方式),但我必须循环并更新每个值..

最好的方法是什么?

添加更多细节:值在一个大的 excel 中,但这与处理该 excel 无关,我会将值列表复制粘贴到.. 文本中。我在想 2 长列表 (id1, id2,..) (value_1, value_2,...)

4

3 回答 3

3

对于一次性作业,将文本转换为 CSV 或其他可由 bcp.exe 处理的格式,然后将其导入临时表,通过 JOIN 进行更新,然后删除临时表。

对于可重复的工作,我会使用SSIS平面文件源数据甚至直接Excel 源源表合并两个源,将结果应用回表中

于 2016-08-08T11:35:52.637 回答
1

选择答案是一个很好的方法,但为了完整性:当这是一个一次性任务,并且更新都遵循这样一个简单的模式时,将输入文本直接转换为一系列更新语句也是有效的,使用 Excel 公式并填写或使用文本编辑器的替换功能。

例子:

id     newvalue
1      foo
2      grok

变成

id     newvalue    generated statement
1      foo         update dbo.mytable set field1 = 'foo'  where id = 1
2      grok        update dbo.mytable set field1 = 'grok' where id = 2

快速而肮脏,但要小心应用并注意意外的语法错误。

于 2016-08-08T13:44:22.910 回答
0

是我最后所做的,我创建了一个临时表,我导入了其中的所有值并通过连接更新

于 2016-08-08T13:23:45.300 回答