将数据从MS Access导入SQL Server时出现问题

本文关键字:Server 问题 SQL 导入 数据 MS Access | 更新日期: 2023-09-27 18:26:49

Access数据库中有一堆"是/否"字段,我需要这些字段进入SQL Server。如果我查看Access数据,这些字段包含0或-1。在SQL Server方面,我创建了BIT类型的字段,但这对我来说不起作用,我假设是因为BIT需要0或1。这是我的错误:

The given value of type String from the data source cannot be converted to type bit of the specified target column. ---> 
System.FormatException: Failed to convert parameter value from a String to a Boolean. 
String was not recognized as a valid Boolean

我还尝试使用nvarchar(3),但也不起作用,说"数据源中字符串类型的给定值不能转换为nvarchar类型"

我应该使用哪种数据类型?我试过BIT、TINYINT、NVARCHAR(3)、CHAR(1)和CHAR(2)。

使用CHAR(1)或CHAR(2)会给我一个不同的错误:

System.Data.SqlClient.SqlException (0x80131904): Received an invalid column length from the bcp client for colid 13.

但无论哪种方式,都不起作用

将数据从MS Access导入SQL Server时出现问题

我总是使用SMALLINT(2字节有符号整数)来允许0和-1,并避免BIT字段的麻烦。

https://msdn.microsoft.com/en-us/library/ms187745.aspx

使用一个bit,如果您希望在导入过程中执行从Yes到1和从No到0的转换,则可以使用CASE语句来处理此操作。

IE

CASE WHEN colVal = 'Yes' THEN 1 ELSE 0