您的位置:首页 > 数据库

SQL Server 2017 安装AdventureWorks示例数据库出现的问题

2017-11-21 00:01 323 查看
最近下载最新的SQL Server 2017 试用,并下载安装AdventureWorks示例数据库,不过出现了一些小问题。

如下:

*** Loading Data

Loading [Person].[Address]

消息 4864,级别 16,状态 1,第 1803 行

第 1499 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 1687 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 5167 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 6612 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 7020 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 7028 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 7295 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 7696 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 9639 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 11003 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4864,级别 16,状态 1,第 1803 行

第 14590 行、第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)。

消息 4865,级别 16,状态 1,第 1803 行

由于超过了最大错误数(10),无法进行大容量加载。

消息 7399,级别 16,状态 1,第 1803 行

链接服务器 "(null)" 的 OLE DB 访问接口 "BULK" 报错。提供程序未给出有关错误的任何信息。

消息 7330,级别 16,状态 2,第 1803 行

无法从链接服务器 "(null)" 的 OLE DB 访问接口"BULK"提取行。

 

用notepad++打开Address.csv,下拉至1499行看其内容:

11785 1234, rue Ste-Honor?
Saint-Denis 179
93400 E6100000010CE9EC9DA1C96E48405277197595AA0240
{0334F558-C1E9-4E19-8AB0-17E90039B1D5}
2013-12-21 10:09:29.423000000

注意到错误提示第 6 列(PostalCode)出现大容量加载数据转换错误(类型不匹配或者字符对于指定的代码页无效)

再认真看表[Person].[Address]

    [AddressID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL,

    [AddressLine1] [nvarchar](60) NOT NULL, 

    [AddressLine2] [nvarchar](60) NULL, 

    [City] [nvarchar](30) NOT NULL, 

    [StateProvinceID] [int] NOT NULL,

    [PostalCode] [nvarchar](15) NOT NULL, 

   [SpatialLocation] [geography] NULL,

    [rowguid] uniqueidentifier ROWGUIDCOL NOT NULL CONSTRAINT [DF_Address_rowguid] DEFAULT (NEWID()),

    [ModifiedDate] [datetime] NOT NULL CONSTRAINT [DF_Address_ModifiedDate] DEFAULT (GETDATE())

PostalCode是15个字符,按上面的内容,出现类型不匹配可能是系统读错了数据,对比看后面以E开头的字符可能性大。再细看整行要插入的内容,发现--

“1234, rue Ste-Honor? Saint-Denis”之间只有1个分隔符,变成93400属于第5列,而以E开头的算是第6列,超过了15个字符啦。

再查找整个文件,里面共有16个类似的情况,全部将其变为2个分隔符后保存,再重新加载,正常执行了。

分析:“1234, rue Ste-Honor? Saint-Denis”之间只有1个分隔符,相当于第3列(AddressLine2)本来是无数据的变成插入了[City]列的数据。

这可能是文件编码的问题,因为有问题的行第2列结尾都有“?”字符,在ANSI格式下只看到1个分隔符;而在UTF-8格式下是可以看到2个分隔符的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息