T-SQL Tips 1


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'
'Developer Edition'
'Enterprise Edition'
'Enterprise Evaluation Edition'
'Personal Edition'
'Standard Edition'

基本数据类型:nvarchar(128)

Engine Edition

安装在服务器上的 SQL Server 实例引擎版本。

1 = 个人或 Desktop Engine
2 = 标准
3 = 企业(适用于企业版、企业评估版和开发版)

基本数据类型:int

InstanceName

用户连接到的实例的名称。

如果实例名称是默认实例,或者输入无效或发生错误,则返回 NULL。

基本数据类型:nvarchar

IsClustered

在故障转移群集中配置服务器实例。

1 = 聚集。
0 = 非聚集。
NULL = 输入无效或发生错误。

基本数据类型:int

IsFullTextInstalled

在 SQL Server 的当前实例中安装全文组件。

1 = 已安装全文组件。
0 = 未安装全文组件。
NULL = 输入无效或发生错误。

基本数据类型:int

IsIntegratedSecurityOnly

服务器为集成安全模式。

1 = 集成安全模式。
0 = 非集成安全模式。
NULL = 输入无效或发生错误。

基本数据类型:int

IsSingleUser

服务器为单用户模式。

1 = 单用户。
0 = 非单用户
NULL = 无效输入或错误。

基本数据类型:int

IsSyncWithBackup

数据库为发布数据库或分发数据库,并且在还原时不用中断事务复制。

1 = 真。
0 = 假。

基本数据类型:int

LicenseType

SQL Server实例模式。

PER_SEAT = 单机模式
PER_PROCESSOR = 单处理器模式
DISABLED = 禁用许可。

基本数据类型: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 实例的版本级别。

返回:
'RTM' = 发售版。
'SPn' = 服务包版
'Bn', = beta 测试版

基本数据类型: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'.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值