1. If thedb server code page is different from local code page, then there maybeunexpected encoding error, so this canbe resolved by setting the “autotranslate=no” in theconnection string.
2. BIN 和 BIN2 排序规则的使用准则
以下注意事项将帮助您决定是 BIN 还是 BIN2 二进制排序规则适合于 SQL Server 实现。
二进制排序规则基于区域设置和数据类型所定义的编码值的顺序,对数据进行排序。SQL Server 中的二进制排序规则强制使用二进制排序顺序,定义了要使用的区域设置和 ANSI 代码页。由于二进制排序规则相对简单,因此对改进应用程序的性能非常有用。对于非 Unicode 数据类型,数据比较将基于 ANSI 代码页中定义的码位。对于 Unicode 数据类型,数据比较将基于 Unicode 码位。对于 Unicode 数据类型的二进制排序规则,数据排序将不考虑区域设置。例如,对 Unicode 数据应用 Latin_1_General_BIN 和 Japanese_BIN,会得到完全相同的排序结果。
SQL Server 中以“_BIN”结尾的早期二进制排序规则对 Unicode 数据执行的是不完整的逐码位比较。更早的 SQL Server 二进制排序规则将第一个字符作为 WCHAR 比较,接下来是逐字节比较。为了实现向后兼容,将不更改现有的二进制排序规则语义。
使用 BIN 排序规则的准则
如果您的 SQL Server 应用程序与使用二进制排序规则的旧版 SQL Server 交互,那么请继续使用二进制排序规则。二进制排序规则可能更适合混合环境。
使用 BIN2 排序规则的准则
此版本的 SQL Server 中的二进制排序规则包含一组纯码位比较排序规则。您可以迁移到二进制排序规则,以利用真正的码位比较,并且应该使用新的二进制排序规则来开发新的应用程序。BIN2 后缀标识了实现新的码位排序规则语义的排序规则名称。另外,二进制排序还有一个与 BIN2 对应的比较标志。其优点包括更简单的应用程序开发和更清楚的语义。
3. SERVERPROPERTY
返回有关服务器实例的属性信息。
语法
SERVERPROPERTY (propertyname )
参数
propertyname
是包含要返回的服务器属性信息的表达式。Propertyname 可以是下列值中的一个。
属性名称 | 返回的值 |
Collation | 服务器的默认排序规则名称。 如果输入无效或发生错误,则返回 NULL。 基本数据类型:nvarchar |
Edition | 安装在服务器上的 Microsoft® SQL Server™ 实例版本。 返回: 'Desktop Engine' 基本数据类型:nvarchar(128) |
Engine Edition | 安装在服务器上的 SQL Server 实例引擎版本。 1 = 个人或 Desktop Engine 基本数据类型:int |
InstanceName | 用户连接到的实例的名称。 如果实例名称是默认实例,或者输入无效或发生错误,则返回 NULL。 基本数据类型:nvarchar |
IsClustered | 在故障转移群集中配置服务器实例。 1 = 聚集。 基本数据类型:int |
IsFullTextInstalled | 在 SQL Server 的当前实例中安装全文组件。 1 = 已安装全文组件。 基本数据类型:int |
IsIntegratedSecurityOnly | 服务器为集成安全模式。 1 = 集成安全模式。 基本数据类型:int |
IsSingleUser | 服务器为单用户模式。 1 = 单用户。 基本数据类型:int |
IsSyncWithBackup | 数据库为发布数据库或分发数据库,并且在还原时不用中断事务复制。 1 = 真。 基本数据类型:int |
LicenseType | SQL Server实例模式。 PER_SEAT = 单机模式 基本数据类型:nvarchar(128) |
MachineName | 服务器实例在其上运行的 Windows NT 计算机名称。 对于聚集实例,即在 Microsoft Cluster Server 的虚拟服务器上运行的 SQL Server 实例,返回虚拟服务器的名称。 如果输入无效或发生错误,则返回 NULL。 基本数据类型:nvarchar |
NumLicenses | 如果是单机模式,则为该 SQL Server 实例的注册客户端许可数。 如果是单处理器模式,则为该 SQL Server 实例的许可处理器数。 如果不是上述模式,则返回 NULL 值。 基本数据类型:int |
ProcessID | SQL Server 服务的进程 ID。(ProcessID 在标识属于该实例的 sqlservr.exe 方面很有用。) 如果输入无效或发生错误,则返回 NULL。 基本数据类型:int |
ProductVersion | SQL Server 实例的版本,格式为"major.minor.build"。 基本数据类型:varchar(128) |
ProductLevel | SQL Server 实例的版本级别。 返回: 基本数据类型:nvarchar(128)。 |
ServerName | Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息。 如果输入无效或发生错误,则返回 NULL。 基本数据类型:nvarchar |
4. 'substring', 'charindex(,)' can not be used in 'text' type, we can first convert 'text' to 'varchar' or 'nvarchar', then we can use 'charindex' or 'substring'.