使用 SSIS 将 FoxPro 日期类型转换为 SQL Server 2005 DateTime
当在 SQL Server 2005 中使用 SSIS 将 FoxPro 数据库转换为 SQL Server 数据库时,如果给定的 FoxPro 数据库具有日期类型,SSIS 假定它是整数类型。将其转换为 dateTime 类型的唯一方法是手动选择此类型。然而,对于超过 100 个表来说,这样做是不切实际的。
因此,我一直在使用一种解决方法,在 SQL Server 2000 上使用 DTS,将其转换为smallDateTime,然后进行备份,然后恢复到 SQL Server 2005。 这个解决方法开始有点烦人。
所以,我的问题是:是否有办法设置 SSIS,以便每当遇到日期类型时自动假定它应该转换为 SQL Server 中的日期时间并全面应用该规则?
更新
具体来说,如果我在 SSIS 中使用导入/导出向导,则会收到以下错误:
无法检索源数据和目标数据的列信息,或者源列的数据类型未正确映射到目标提供程序上可用的数据类型。
后面是给定表的日期列的列表。
如果我手动将每个值设置为日期时间,则它可以正常导入。 但我不想为一百张桌子这样做。
When using SSIS in SQL Server 2005 to convert a FoxPro database to a SQL Server database, if the given FoxPro database has a date type, SSIS assumes it is an integer type. The only way to convert it to a dateTime type is to manually select this type. However, that is not practical to do for over 100 tables.
Thus, I have been using a workaround in which I use DTS on SQL Server 2000 which converts it to a smallDateTime, then make a backup, then a restore into SQL Server 2005.
This workaround is starting to be a little annoying.
So, my question is: Is there anyway to setup SSIS so that whenever it encounters a date type to automatically assume it should be converted to a dateTime in SQL Server and apply that rule across the board?
Update
To be specific, if I use the import/export wizard in SSIS, I get the following error:
Column information for the source and the destination data could not be retrieved, or the data types of source columns were not mapped correctly to those available on the destination provider.
Followed by a list of a given table's date columns.
If I manually set each one to a dateTime, it imports fine.
But I do not wish to do this for a hundred tables.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以制作一个小型 FoxPro 程序,该程序将循环遍历表列表,并将每条记录的 SQL INSERT INTO 语句写入 .sql 文件,然后您可以从该文件打开或粘贴到 SQL Management Studio 中并执行。然后,您可以控制适用于 SQL Server 日期类型字段的日期格式。
在 C# 中也可以完成类似的事情。
You could make a small FoxPro program that will loop through your list of tables and write out a SQL INSERT INTO statement for each record to a .sql file which you could then open from or paste into SQL Management Studio and execute. You could then control the date formats that will work with SQL Server's date type fields.
Something similar could be done in c#.