MS SQL Server 2008编码

MS SQL Server 2008编码

问题描述:

我在Lithuanian_100_CI_AS排序规则的数据库中有表。有些行的文本字段包含文本,其中包含随机符号而不是立陶宛文。是否有可能改变编码,我会看到我需要的字母?更改排序规则完全没有。MS SQL Server 2008编码

+2

可能不是。如果插入不正确,数据将会丢失。我假设数据库的默认排序规则是立陶宛以外的其他规则吗?在这种情况下,在插入字符串文字时使用'N'前缀来避免将它强制转换为数据库默认排序规则的代码页。 – 2012-02-01 14:26:14

+0

文字或ntext? (不应该使用它) – gbn 2012-02-01 15:00:18

+0

对于这些表中的所有文本字段,我使用NVARCHAR(256),因为这些字符串不是很长。数据库整理是Lithuanian_100_CI_AS。问题是数据是从编码错误的CSV导入的。我无法重新导入数据。 – JNM 2012-02-01 18:19:34

如果你有这样的数据(操纵),那么你不能通过改变排序规则来保存它,但是如果你设置了正确的排序规则,这可以帮助你将数据以正确的方式写入数据库(与未来更相关)

不,数据是随机的。

您需要

  • 使用nvarchar的存储这一数据的正确
  • 确保客户机使用为nvarchar的参数
  • 确保所有的字符串常量有N个在前面(例如:N'foobar'

排序规则不是编码:它仅确定字符串和比较/运动方式,但确定非Unicode(unicode = nvarchar)列的代码页

请注意,SQL Server中的data types "text" and "ntext" are deprecated。使用最大类型