SQL Server:文本数据类型不支持代码页转换
使用 ADO 将文本插入 SQL Server 中的 TEXT 列时,出现错误:
文本数据类型不支持代码页转换。从:1257 到:1252。
现在我确实将 Windows 代码页更改为 1257(爱沙尼亚语)。
我的问题是:SQL Server 如何知道我正在运行什么代码页?
发送到服务器和从服务器发送的所有字符串都作为宽(unicode)字符串发送。在服务器上,SQL Server 被迫将 unicode 字符串填充到 TEXT(而不是 NTEXT)列中。文本列设置为使用排序规则代码页1252。
源字符串中没有 Windows 1252 代码页之外的字符。即使有,SQL Server 如何知道我正在运行代码页1257?
我尝试分析我与 SQL Server 的连接,但没有看到客户端与服务器识别其代码页的任何内容。
When inserting text into a TEXT column in SQL Server using ADO, i get the error:
Code page translations are not supported for the text data type. From: 1257 To: 1252.
Now it is true that i've changed my Windows code page to 1257 (Estonian).
My question is: How does SQL Server know what code page i'm running in?
All strings sent to and from the server are sent as wide (unicode) strings. At the server, SQL Server is then forced to stuff the unicode string into a TEXT (not NTEXT) column. The text column is set to use collation code page 1252.
There are no characters in the source string that are outside of the Windows 1252 code page. Even if there were, how does SQL Server know i'm running code page 1257?
i've tried profiling my connection to SQL Server, and i see nothing that looks like the client identifying its code page with the server.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我希望我的说法不正确,这是 SP3 之前的 SQL Server 2000...
在 SP3 中已修复,请参阅 知识库 317956
I hope I'm not correct and this is pre-SP3 SQL Server 2000...
Fixed in SP3, see KB 317956