数据来自ODBC。 SqlServer数据库和ODBC数据之间的代码页不同。
ODBC数据未指定原始代码页,SqlServer将其解释为默认代码页。
版本: Microsoft SQL Server 2008 R2(SP1) - 10.50.2500.0(X64)
例如:
SELECT cast(cast('é' COLLATE SQL_Latin1_General_CP850_BIN2 as varbinary(10)) as varchar(10))
返回','
SELECT cast(cast('é' COLLATE SQL_Latin1_General_CP1_CI_AS as varbinary(10)) as varchar(10))
返回'é'
编辑: nvarchar不起作用,结果是空字符串。
SELECT cast(cast('é' COLLATE SQL_Latin1_General_CP850_BIN2 as varbinary(10)) as nvarchar(10))
重新编辑: 在ODBC查询中指定nvarchar:
select Reference from openrowset('MSDASQL', 'Dsn=***', 'SELECT cast(Reference as nvarchar) as Reference FROM Orders') as tmp
此查询返回错误消息:
[ODBC Engine Interface]Invalid column type: nvarchar.