小编Sha*_*999的帖子

如何为 SQL 表自动生成数据类型

我有许多包含 200 多列的非规范化表。这些表位于 SQL Server 中,并且它们通常(如果不总是)具有 varchar(100) 或 nvarchar(100)(字符串)数据类型。但是,大多数列都是整数、浮点数或其他数据类型。我不可能遍历每个表和列并选择数据类型。由于许多原因,包括应用程序兼容性、性能、加入和其他原因,我必须将这些转换为正确的(或至少接近正确的)数据类型。有什么工具可以使用吗?有没有人创建代码来完成这个?它不一定是完美的,但一场势均力敌的比赛就可以了。

我试过什么:

  1. 我尝试将这些表导出到 Excel,然后移回 SQL。它起作用了,但它比手动操作要花费很多很多时间,因为 Excel 搞砸了您的数据并将其转换为任何感觉(想想科学记数法、数字日期等......天哪!)。这是非常耗时且失败的。如果您选择在 Excel 中使用“文本”选项,它只会将所有内容转换回 varchar (x)
  2. 我尝试导出到平面文件并使用具有智能数据类型的 VS 或 SSMS 新版本。这比 Excel 效果更好,但不幸的是,即使是一行冲突也会停止整个过程。该工具很笨重,会出现严重错误并且不会告诉您哪一行导致了问题。使用这种方法也很糟糕,因为这些表非常庞大,而且非常耗时。尤其是当您考虑工具故障排除时。

感谢您的帮助。如果您不要求我通过试图说我的设置不好/等来放弃任务,我也很感激。

sql sql-server ssis sql-server-data-tools sql-server-2019

2
推荐指数
1
解决办法
752
查看次数