【问题标题】:SQL Collation issue between SQL 2000 and SQL 2008SQL 2000 和 SQL 2008 之间的 SQL 排序规则问题
【发布时间】:2018-12-21 15:29:45
【问题描述】:

我正在查询 sql 2008 数据库(链接服务器)上的 sql 2000 数据库,并且在链接服务器中我有一个带有重音符号的数据。但是,当我查询 2008 数据库时,重音符号按预期正确显示。但是当我在 sql 2000 数据库上运行查询时,数据显示不正确。

SQL 2000 排序规则 - SQL_Latin1_General_CP1_CI_AS

SQL 2008 排序规则 - SQL_Latin1_General_CP850_BIN2

我试图在我的查询中添加“COLLATE”,但它只是没有正确显示数据。 有什么想法吗?

谢谢。

【问题讨论】:

  • 您的意思是从结果中去除了重音符号吗?还是排序顺序不对?
  • 所以正确的数据是“Í”,不正确的是显示“Ö”。因此,它不像缺少口音,只是让数据完全错误。
  • 检查链接服务器是否标记为“排序兼容”(应该是关闭的)。
  • 让 DBA 检查此设置,我可以确认此设置已设置为关闭。我们也确实尝试过,也勾选了它,但这并没有什么不同。

标签: sql sql-server tsql collation


【解决方案1】:

事实证明,当列的数据类型需要为 nvarchar 时,它们的数据类型为 varchar。通过删除表并使用正确的数据类型重新创建它,这解决了我的问题。

【讨论】:

  • 为什么不直接使用ALTER TABLE ALTER COLUMN
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多