SqlServer - 指定数据的代码页

时间:2017-04-07 09:48:23

标签: sql-server sql-server-2008-r2 codepages

数据来自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.

0 个答案:

没有答案