Sql 系统函数

函数 意义
APP_NAME() 返回应用程序名称,连接字符串中 "APP=..."
CASE ... [ELSE ...] END 多路分支语句,参见 流程控制 
CAST(值 as 类型) 数据类型转换
COALESCE(...) 返回多个参数中第一个非空值
CONVERT(类型, 值, style) 数据类型转换
CURRENT_TIMESTAMP 当前日期和时间,等价于 getdate()
CURRENT_USER 返回用户名,等价于 USER_NAME()
DATALENGTH(值) 返回数据所占字节数
@@ERROR 返回最后执行的 Transact-SQL 语句的错误代码 
FORMATMESSAGE 从 sysmessages 现有的消息构造消息 
GETANSINULL(['database']) 返回会话的数据库的默认为空性 
HOST_ID() 返回工作站标识号
HOST_NAME() 返回工作站名称(TC)
IDENT_INCR(表或视图名称) 返回表或视图的标识增量值(1)
IDENT_SEED(表或视图名称) 返回表或视图的标识种子值(1)
@@IDENTITY 返回刚插入记录的标识值(INSERT 触发器可能对此有影响)
IDENTITY 用在 into table 语句,以将标识值插入到新表中
ISDATE(varchar) 返回是否为有效的日期值
ISNULL(val) 返回是否为空值
ISNUMERIC(val) 返回是否为数值
NEWID 创建 uniqueidentifier 值(45FF1934-E7EB-419C-8B1D-0792CC983A41)
NULLIF(exp1, exp2) 如果两值等同,返回空
PARSENAME(sysname, piece) 返回对象的指定部分,仅从语法上检测,不检测是否真的存在该对象

示例:sysname = 'a.b.c.d','b.c.d', 'c.d', 'd'

piece 说明 'a.b.c.d' 'b.c.d' 'c.d' 'd'
1 对象名 'd' 'd' 'd' 'd'
2 所有者名称 'c' 'c' NULL NULL
3 数据库名称 'b' 'b' NULL NULL
4 服务器名称 'a' NULL NULL NULL
PERMISSIONS  
@@ROWCOUNT 返回上一语句受影响的记录条数
ROWCOUNT_BIG() 返回上一语句受影响的记录条数(BIGINT)
SESSION_USER 如果无默认值,则为当前会话的用户名(dbo)
STATS_DATE(table_id, index_id) 返回最后一次更新指定索引统计的日期
SYSTEM_USER 返回登陆用户名(asteras\tc)
@@TRANCOUNT 为当前连接返回活动事务数目
USER_NAME() 返回用户名(dbo)
COLLATIONPROPERTY(collation_name, property) 返回给定排序规则的属性
property 描述
'CodePage' 排序规则的 nonUnicode 代码页。
'LCID' 排序规则的 Windows LCID。
为 SQL 排序规则返回 NULL。
'ComparisonStyle' 排序规则的 Windows 比较风格。
为二进制或 SQL 排序规则返回 NULL。
SCOPE_IDENTITY() 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值
(不受 INSERT 触发器又引发 INSERT 操作的影响)
SERVERPROPERTY('propertyname') 返回有关服务器实例的属性信息
SESSIONPROPERTY('option') 返回会话的 SET 选项设置
fn_helpcollations 返回支持的所有排序规则的列表(name, description)

SELECT * FROM ::fn_helpcollations()

fn_servershareddrives 返回由群集服务器使用的共享驱动器名称(DriveName)

SELECT * FROM ::fn_servershareddrives()

fn_virtualservernodes 返回可运行虚拟服务器的节点的列表(NodeName)

SELECT * FROM ::fn_virtualservernodes()

函数 SERVERPROPERTY 的参数 propertyname

属性名称 返回的值
Collation 服务器的默认排序规则名称。

如果输入无效或发生错误,则返回 NULL。

基本数据类型:nvarchar

Edition 安装在服务器上的 Microsoft® SQL Server™ 实例版本。

返回:

'Desktop Engine'
'Developer Edition'
'Enterprise Edition'
'Enterprise Evaluation Edition'
'Personal Edition'
'Standard Edition'

基本数据类型:nvarchar(128)

EngineEdition 安装在服务器上的 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

函数 SESSIONPROPERTY 的参数 option

选项 描述
ANSI_NULLS 指定是否对空值上的等号 (=) 和不等号 (<>)应用遵从 SQL-92 标准行为。

1 = ON
0 = OFF

ANSI_PADDING 控制列存储小于定义的列大小的值的方式,以及列存储在字符串和 binary 数据中有尾随空格的值的方式。

1 = ON
0 = OFF

ANSI_WARNINGS 指定是否对某些情况(包括被零除和算术溢出)生成错误信息或警告应用 SQL-92 标准行为。

1 = ON
0 = OFF

ARITHABORT 确定在执行查询过程中发生溢出或被零除的错误时是否终止查询。

1 = ON
0 = OFF

CONCAT_NULL_YIELDS_
NULL
控制是将串联结果视为空值还是空字符串值。

1 = ON
0 = OFF

NUMERIC_ROUNDABORT 指定当表达式中的四舍五入导致精度降低时是否生成错误信息和警告。

1 = ON
0 = OFF

QUOTED_IDENTIFIER 指定是否遵从 SQL-92 关于使用引号分隔标识符和文字字符串的规则。

1 = ON
0 = OFF

<任何其它字符串> NULL = 无效的输入