SQL Server 内置函数的类别
函数列别 |
说明 |
聚合函数 |
执行的操作是将多个值合并为一个值。例如 COUNT、SUM、MIN 和MAX。 |
配置函数 |
是一种标量函数,可返回有关配置设置的信息。 |
加密函数 |
支持加密、解密、数字签名和数字签名验证。 |
游标函数 |
返回有关游标状态的信息。 |
日期和时间函数 |
可以更改日期和时间的值。 |
数学函数 |
执行三角、几何和其他数字运算。 |
元数据函数 |
返回数据库和数据库对象的属性信息。 |
排名函数 |
是一种非确定性函数,可以返回分区中每一行的排名值。 |
行集函数 |
返回可在 Transact-SQL 语句中表引用所在位置使用的行集。 |
安全函数 |
返回有关用户和角色的信息。 |
字符串函数 |
可更改 char、varchar、nchar、nvarchar、binary 和 varbinary 的值。 |
系统函数 |
对系统级的各种选项和对象进行操作或报告。 |
系统统计函数 |
返回有关 SQL Server 性能的信息。 |
文本和图像函数 |
可更改 text 和 image 的值。 |
配置函数
select @@servername
返回运行SQL Server的本地服务器的名称。本地服务器名更改后,@@servername无法报告此更改,除非使用sp_addserver或sp_dropserver进行更改。
推荐使用系统函数serverproperty的servername属性来自动报告此更改。
select serverproperty('servername')
日期和时间函数
select getdate()
以 datetime 值的 SQL Server 2005 标准内部格式返回当前系统日期和时间。
select datepart(dy,getdate())
返回表示指定日期的指定日期部分的整数。
select dateadd(hh,1,getdate())
返回给指定日期加上一个时间间隔后的新 datetime 值。
select datediff(d,' 2008-07-01','2008-07-14')
返回跨两个指定日期的日期边界数和时间边界数。
select getdate()
select convert(varchar,getdate(),101)
select convert(varchar,getdate(),111)
将日期数据转换为特定日期格式的字符数据。
数学函数
select ceiling(12.34),ceiling(-12.34)
返回大于或等于指定数值表达式的最小整数。
select rand()
返回从 0 到 1 之间的随机 float 值。
select convert(int,rand()*3+1)
返回1到3之间的随机整数值。
select round(748.53,0),round(748.53,1)
select round(748.53,-2),round(748.53,-1)
返回一个数值表达式,舍入到指定的长度或精度。
元数据函数
select object_id('master.sys.databases')
返回架构范围内对象的数据库对象标识号。
select object_name(id) from master.sys.sysobjects where id=-213
返回架构范围内对象的数据库对象名称。
select object_definition(object_id('master.sys.sp_who2'))
返回指定对象的定义的 Transact-SQL 源文本。
安全函数
select is_member('dbo')
select is_srvrolemember('sysadmin')
指示当前用户是否为指定 Microsoft Windows 组或 SQL Server 数据库角色的成员。
指示 SQL Server 2005 登录名是否为指定固定服务器角色的成员。
select has_perms_by_name(null,null,'view server state')
我具有服务器级 VIEW SERVER STATE 权限吗?
select has_perms_by_name('Tom','login','impersonate')
我可以IMPERSONATE 服务器主体Tom 吗?
如果可以,则能够使用execute as切换至Tom 的上下文;
exec as user='Tom'
使用revert切换回原先的上下文。
revert
select has_perms_by_name('master.sys.databases','object','select')
我对master.sys.databases 有select 权限吗?
字符串函数
select char(65),char(97)
将 int ASCII 代码转换为字符。
制表符 = char(9)
换行符 = char(10)
回车符 = char(13)
select charindex('abc','abcdefgabc',5)
返回字符串中指定表达式的开始位置。
select len('abc ')
返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格。
select replicate('xy',10)
以指定的次数重复字符表达式。
select datalength(rtrim('abc '))
截断所有尾随空格后返回一个字符串。
其中datalength()返回用于表示任何表达式的字节数。
select substring('abcdeft',3,2)
返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分。
系统函数
select SpecialOfferID,MinQty,MaxQty,isnull(MaxQty,9999) as MaxQty2
from AdventureWorks.Sales.SpecialOffer
使用指定的替换值替换 NULL。
select @@rowcount,rowcount_big()
返回受上一语句影响的行数,ROWCOUNT_BIG 的返回类型为 bigint。
select * from sys.dm_db_index_physical_stats(null,null,null,null,null)
返回指定表或视图的数据和索引的大小和碎片信息。
系统统计函数
select @@total_errors,@@total_read,@@total_write
返回 SQL Server 自上次启动之后所遇到的磁盘写入错误数,读取磁盘(不是读取高速缓存)的次数,所执行的磁盘写入次数。