Sql server SQL Server 2014中未呈现商标符号
在我的SQL Server 2014实例上,如果我运行Sql server SQL Server 2014中未呈现商标符号,sql-server,symbols,non-ascii-characters,Sql Server,Symbols,Non Ascii Characters,在我的SQL Server 2014实例上,如果我运行 select @@version select 'None of your Business™' select @@version select 'None of your Business™' 我得到: ---------------------------------------------------------------------------------------------------------------------
select @@version
select 'None of your Business™'
select @@version
select 'None of your Business™'
我得到:
----------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Jun 17 2016 19:14:09
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
(1 row affected)
----------------------
None of your BusinessT
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
Aug 22 2017 17:04:49
Copyright (C) 2017 Microsoft Corporation
Developer Edition (64-bit) on Windows 10 Enterprise 10.0 <X64> (Build 17763: ) (Hypervisor)
(1 row affected)
----------------------
None of your Business™
(1 row affected)
我得到:
----------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Jun 17 2016 19:14:09
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
(1 row affected)
----------------------
None of your BusinessT
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
Aug 22 2017 17:04:49
Copyright (C) 2017 Microsoft Corporation
Developer Edition (64-bit) on Windows 10 Enterprise 10.0 <X64> (Build 17763: ) (Hypervisor)
(1 row affected)
----------------------
None of your Business™
(1 row affected)
呈现为™ 在SQL Server 2017中,但作为SQL Server 2014中的一个Ö。使用
选择不关您的事™'
和N[VAR]CHAR
列类型,如果您正在存储该字符串。™非Unicode排序规则中不保证存在代码>字符。任何剩余问题都将由客户端渲染引起。您可以使用selectserverproperty('Collation')
验证默认的服务器排序规则SELECT NCHAR(8482)
应该在这两个方面给出相同的结果,而不管排序规则是什么。快速检查告诉我,任何使用\u CP850
排序规则之一的服务器都将呈现™
作为T
,并且Ö
确实是代码点153位于该位置的字符,因此您的服务器使用这些排序规则之一,或者您的客户端工具使用该代码页翻译字符。如果您使用的是sqlcmd
,并且您使用的是现代版本的Windows,请在运行之前尝试chcp 65001
,以便在代码页中使用UTF-8。(尽管如此,在DB中考虑Unicode也是一个好主意!)在我的SQL 2014实例中,选择ServerPerfy(“排序规则”)返回:SqLyAltDistOrthCp5050Ciasas,在我的SQL 2017实例中,它返回:SQLJLATIL1IGNOALALL CP1YCIIOASYOWE,您可以使用2017个实例使用安装默认值,2014年的情况并非如此。代码页850没有商标字符。您可以更改SQL server 2014实例的默认服务器排序规则,但这是;使用正确的排序规则创建新数据库更简单,但即使这样,复制数据也是一件麻烦事。你必须考虑你的选择,这里,取决于你想要达到什么。我试图从存储过程中的SQL Server数据库中取出商标数据。我所做的是将此功能移动到调用存储过程的C#程序。