Excel的OpenRowset:请勿将True/False转换为1/0



我正在使用OpenRowset导入具有"状态"列的Excel,其值可以为" true/forse/casuted"。我已经使用typeguessrows = 0设置了注册表。当Excel文件中的"状态"列包括" true/fals/false"的值时,将其作为文本值按预期导入。

但是,当它仅包含" true/false"时,导入值将变为" 1"one_answers" 0"。因此,在导入多个Excel文件后,我的SQL表列的值是" True,False,Uccesed,1,0"。如何告诉SQL Server始终以文本导入,而无需自动将True/False转换为1/0?我不想写一个愚蠢的SQL语句以将1/0更新为true/fals。请其他解决方案?

问题仅在特定文件中仅具有true或false值时发生(因为在这种情况下,即使在遍历所有行之后,也无法知道实际数据类型)。(如果您在导入的文件中有可用的标题,则可以设置 typeguessrows = 1 可以从顶部行猜测数据类型)

解决问题的方法之一是打开Excel,从弹出菜单中选择" true/false),右键单击并单击"格式单元格"。在数字选项卡下,选择文本为类别。单击确定。

另一种方法是在插入后立即更新行。

谢谢。

最新更新