【发布时间】:2018-03-02 18:31:41
【问题描述】:
在 SQL Server 中,如果将float 格式数据直接转换为varchar 或nvarchar,则会得到科学计数法垃圾,如以下问题所述:How to convert float to varchar in SQL Server
我使用的是:cast(cast([Fieldname] as numeric(18,0)) as varchar)
这很好,但如果我忘记这样做,可能会在比较或加入时导致不可见的错误,特别是如果我让 SQL Server 在我的查询中隐式进行转换。
我从来没有故意将任何整数设置为float,但是当您使用导入/导出向导时,SSMS 默认将数字数据导入为float。我知道您可以在每次导入时手动更改它(或者如果您使用 SSIS,您可以这样设置批次,但我无权访问 SSIS)。
那么有没有办法全局更改 SSMS 的默认导入类型,使其默认将数字字段设置为 numeric?
【问题讨论】:
-
SSIS导入/导出向导不是SSMS,SSMS也不是sql引擎。听起来您没有使用 SSMS 中的任何功能来导入数据。简短的回答是否定的,您不能更改 SSIS 向导的默认设置。您可以通过 SSMS 在目标数据库中创建对象,并通过创建表设置正确的数据类型,然后将 SSIS 向导指向该对象,该对象将继承您设置的数据类型。
-
@Random_User 所以当你在 SSMS 中启动向导时,它应该被称为 SSIS 向导?
标签: sql-server tsql