Sql server SQL server导入和导出向导转换与Alter命令

Sql server SQL server导入和导出向导转换与Alter命令,sql-server,tsql,Sql Server,Tsql,刚刚尝试使用SQL server导入和导出向导将.xls文件导入数据库,对于.xls文件中的某些字段,存在空白值。这些字段应为目标表中的DATE或MONEY类型 我试图编辑这些列的映射,但它给出了一条错误消息,说无法为我转换这些字段值,因为可能会丢失数据 下面是我令人困惑的部分,我忽略了导入和导出向导级别上的数据类型,只是将它们保留为原始的nvarchar,并尝试更改列,例如更改表。。更改col1 DATE列,成功。 为什么这些字段会被转换而没有任何问题(实际上那些空白值被转换为日期列的1900

刚刚尝试使用SQL server导入和导出向导将
.xls
文件导入数据库,对于
.xls
文件中的某些字段,存在
空白
值。这些字段应为目标表中的
DATE
MONEY
类型

我试图
编辑这些列的映射
,但它给出了一条错误消息,说无法为我转换这些字段值,因为
可能会丢失数据

下面是我令人困惑的部分,我忽略了
导入和导出向导
级别上的数据类型,只是将它们保留为原始的
nvarchar
,并尝试
更改列
,例如
更改表。。更改col1 DATE列
,成功。
为什么这些字段会被转换而没有任何问题(实际上那些空白值被转换为
日期
列的
1900/01/01
货币
列的
0.00
,即使
导入和导出向导
给了我这些结果,我也可以接受。)确切地说,我感到困惑的是,为什么
ALTER
命令没有抛出
潜在数据丢失的错误,并且可以将空白值转换为其他类型的初始值?

我相信
nvarchar
几乎可以接受任何东西。它肯定比大多数数据类型更宽容。是的,当然,excel会接受你所付出的一切,让你摆脱各种各样的马虎。正如您所发现的,当您从Excel世界进入数据库世界时,您需要在使用何种数据类型方面更加严格