对于SSIS,我需要创建一个TSQL更新工作流以覆盖导入错误时的当前表记录。TSQL根据数据类型为每个列名称更新标记
我已经设置了整个SSIS过程,但我缺少SQL更新语句。
因此,如果导入过程中出现问题,表格中的当前记录(所有行)应该用短消息 - 例如“Error DB Import”进行更新。
由于我有多个表来处理我也得到不同的列名和数据类型。
我会用这个语句来获取列名
SELECT COLUMN_NAME , *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTable'
,但我怎么能设置一个字符串消息的字符类型和NULL对于数字和日期类型。使用CASE语句?
在伪代码,它可能只是一个通过列循环:如果column_name是DATA_TYPE“炭”的,然后......
我还需要忽略每个表,这样我的第一个4列不要覆盖ID,日期等
如果你能帮我设置一个静态测试更新标准,我相信我可以将其转移到我的SSIS项目。
谢谢。
谢谢你的脚本。但我没有得到如何更新myTable中的记录与上面的字符串味精? – SvenB 2013-04-04 13:19:44
@SvenB - 更新了答案。希望这可以帮助。 – sgeddes 2013-04-04 14:10:45
感谢您的更新和小提琴。现在我需要知道的是将WHERE子句放在哪里才更新给定的ID。 我将ID添加到小提琴[小提琴](http://sqlfiddle.com/#!3/0d6d9/1/1) – SvenB 2013-04-05 07:34:42