我正在开发一个用于从一个表到另一个表的数据迁移的自动化工具,这里我正在寻找一个函数或SP,我将为其传递源列和目标列作为输入参数。当源列数据与复制到目标列兼容时,我希望输出参数返回true。如果不是,那么它应该返回false。
例如,如果源列是varchar,而目标列是整数,则脚本应检查源列中的所有数据是否足以移动到整型列,并返回输出标志。我想要一个脚本这样工作的所有类型的数据类型。任何建议都会很有帮助。
发布于 2014-06-22 06:57:08
如果你使用的是SQL Server2012,你可以使用TRY_CAST()、TRY_CONVERT()和TRY_PARSE() (参见this post by Biz Nigatu of blog.dbandbi )。
也就是说,您仍然需要检查截断错误,例如,通过转换为目标数据类型并返回,然后将原始值与转换后的值进行比较。
我在过去见过类似的工具,看看在线上是否没有免费的工具可能是一个好主意。即使是购买,也可能比您花在开发和故障排除上的时间要便宜。
发布于 2014-06-22 08:14:35
我有一个SSIS解决方案,它是我使用EzAPI组合在一起的。我已经把它发布到了GitHub上,所以请随意查看:
https://github.com/thevinnie/SyncDatabases
现在,与您相关的部分将是我使用信息模式来确保源和目标是模式匹配的部分。如果不是,C#脚本任务将生成语句以创建、更改或删除所需的列。
EzAPI部件使用SSIS很酷,因为它允许您以编程方式生成SSIS包。对于项目需求,我需要能够每次加载数据,并且不让源代码中的模式更改破坏流程。
欢迎提出意见和建议。希望这会有所帮助,但我认为无论哪种方式,您都会关注INFORMATION_SCHEMA.COLUMNS。
https://stackoverflow.com/questions/24344422
复制相似问题