这似乎是一项直接的任务,但我无法找到一个好的方法。
我有一长串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,...)
答案 0 :(得分:2)
对于一次性作业,将文本转换为CSV或其他可由bcp.exe处理的格式,然后将其导入临时表,通过JOIN进行更新,然后删除临时表。
对于可重复的工作,我希望我们SSIS:flat file source数据,甚至直接Excel source,source the table,merge the two sources,应用结果{{3 }}
答案 1 :(得分: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
快速而肮脏,但要小心谨慎,注意意外的语法错误。
答案 2 :(得分:0)
是我最后做的,我创建了一个临时表,我导入了所有值并通过连接更新