SQL函数说明大全(8)

2019-04-22 08:52

http://5dblog.me

APP_NAME() COALESCE() COLLATIONPROPERTY() 返回与当前连接相关联的应用程序的名字 从以逗号分隔的表达式列表中返回第一个非空值 返回一个特定字符集排序规则的特定属性的值。这些属性包括CodePage、LCID、ComparisonStyle CURRENT_TIMESTAMP() 返回当前日期与时间。和GETDATE()函数是同义的。这个函数的存在只是为了与ANSI-SQL兼容 C1UJRRENT_USER() DATALENGTH() 返回当前用户的名字。与USER_NAME()函数相同 返回存储或处理一个值所需的字节数。对于ANSI字符串类型,这个函数返回的值与LEN()函数相同,但对于其他数据类型而言就可能不一定相同了 fn_helpcollations() fn_servershareddrives() fn_virtualfilestats() FORMATMESSAGE() GETANSINULL() 返回一个填充有由当前SQLSewer版本支持的字符集排序规则的表类型值 返回一个填充有服务器共享的驱动列表的表类型值 返回一个填充有包括日志文件在内数据库文件的I/O状态的表类型值 从sysmessages表中为指定的信息代码和以逗号分隔的参数列表返回错误信息 根据ANSLNULL_DFLT_ON与ANSLNULL_DFLT_OFF数据库设置返回数据库的可空性设置 HOST_ID() HOST_NAME() IDENT_CURRENT() IDENT_INCR() IDENT_SEED() IDENTITY() ISDATE() ISNULL() ISNUMERIC() NEWID() 返回当前会话的工作站ID 返回当前会话的工作站名 返回最后一个为指定的表生成的标识(ID)值。与会话、范围无关 返回最后一次创建的标识(ID)列中定义的增量值 返回最后一次创建的标识(ID)列中定义的种子值 用在SELECT…INTO语句中,在一个列中插入自动生成的标识值 返回一个表明指定的值是否可被转换为日期值的标志 判断指定的值是否是空值,然后返回一个事先提供的替代值 返回一个表明指定的值是否可被转换为数字值的标志 返回一个新生成的UniqueIdentifier类型的值。这是一个128位的整型、全球唯一的值,通常以字母或数字十六进制来表示(如89DE6247·C2E242DB-8CE8·A787E505D7EA)。这个类型经常被用作复制的和半连接系统中的主键. NULLIF() PARSENAME() PERMISSIONS() 两个特定的参数的值如果是相同的,则返回NULL 返回一个具有4部分对象名的特定部分 返回一个整型值,该值是一个表示当前用户在指定的数据库对象上权限或者权限组合的位映像 ROWCOUNT_BIG() 与@@RowCount变量一样,这个函数返回被最后一条语句修改或返回的行数量。返回值类型是bigint http://5dblog.me

SCOPE_IDENTITY() 与@@IDENTIY变量一样,这个函数返回限制在当前会话与范围内的最后一次生成的标识值 SERVERPROPERTY() 返回一个表示服务器属性状态的标记。属性包括Collation、Edition、EngineEdition、InstanceName、IsClustered、IsFullTextInstalled、IsIntegrated- SecurityOnly、IsSingleUser、IsSyncWithBackup、LicenseTYpe、MachineName、NumLicenses、ProcessID、ProductLevel、ProductVersion、ServerName SESSION_USER SESSIONPROPERTY() 返回当前用户名。调用本函数不需要括号 返回表示一个会话属性状态的标记。属性包括:ANSL_NULLS,ANSI_PADDING,ANSL_WARNINGS,ARITHABORT,CONCAT_NULL_ YIELDS_NULL,NUMERIC_ROUNDABORT,QUOTED_IDENTIFIER STATS_DATE() SYSTEM_USER USER_NAME() COALESCE()函数

返回指定的索引统计信息最后一次被更新的时间 返回当前用户名。调用本函数不需要括号 为一个指定的用户ID返回用户名。如果没有提供ID号则返回当前的数据库用户 COALESCE()函数是非常有用的,它返回其参数中第一个非空表达式。它能够节省颇多IF或者CASE分支逻辑。以下例子用产品数据填充一个表,每个产品最多有3种价格:

CREATE TABLE #ProductPrices (ProductName varchar(25), SuperSalePrice Money NULL, SalePrice Money NULL, ListPrice Money NULL) GO INSERT INTO #ProductPrices VALUES('Standard Widget', NULL, NULL, 15.95) INSERT INTO #ProductPrices VALUES('Economy Widget', NULL, 9.95, 12.95) INSERT INTO #ProductPrices VALUES('Deluxe Widget', 19.95, 20.95, 22.95) INSERT INTO #ProductPrices VALUES('Super Deluxe Widget', 29.45, 32.45, 38.95) INSERT INTO #ProductPrices VALUES('Executive Widget', NULL, 45.95, 54.95) GO 所有的产品都有定价,有些有销售价,有些还有促销价。一项产品的当前价格是所有己有价格的最低价,或者在读取每个价格列时以列出顺序读到的第一个非空值:

SELECT ProductName, COALESCE(SuperSalePrice, SalePrice, ListPrice) AS CurrentPrice FROM #ProductPrices 这个方法比使用多行分支与判断逻辑要简洁得多,而结果也是同样简单,如下图所示:

http://5dblog.me

DATALENGTH()函数

DATALENGTH()函数返回一个用于对值进行管理的字节数,这有助于揭示不同数据类型间的一些有趣差别。当把varchar类型传递给DATALENGTH()和LEN()函数时,它们将返回相同的值:

DECLARE @Value varchar(20) SET @Value = 'abc' SELECT DATALENGTH(@Value) SELECT LEN(@Value) 这些语句的返回值都为3。因为varchar类型使用了3个单字节字符来存储三个字符的值。然而,如果使用nVarchar类型来管理相同长度的值,就要占用多一倍的字节:

DECLARE @Value nvarchar(20) SET @Value = 'abc' SELECT DATALENGTH(@Value) SELECT LEN(@Value) DATALENGTH()函数返回值为6,因为每个使用Unicode字符集的字符都要占用2个字节。LEN()函数返回值为3,因为这个函数返回字符数,不是字节数。以下是一个有趣的测试:要存储一个值为2的整型变量,要占用多少个字节?而如果要存储一个值为20亿的整型变量,又将占用多少个字节呢?试一下:

DECLARE @Value1 int, @Value2 int SET @Value1 = 2 SET @Value2 = 2000000000 SELECT DATALENGTH(@Value1) SELECT LEN(@Value1) SELECT DATALENGTH(@Value2) SELECT LEN(@Value2) 在这两种情况下,DATALENGTH()函数都返回4。因为int类型不论值是多少,总是使用4个字节。LEN()函数本质上将整型值当成已转换成字符型的数据来处理,所以,在这个例子中,它分别返回1和10,即值的位数。

在下表中的全局系统变量都将返回int类型的值。这些变量可用于存储过程和其他实现定制业务逻辑的编程对象。 变 量 @@ERROR @@IDENTITY @@ROWCOUNT 当前会话最后一次发生的错误代码 当前会话最后一次生成的标识值 当前会话中最后一次返回结果集的执行操作所返回的行数 说 明 http://5dblog.me

@@TRANCOUNT 当前会话中活动的事务数。这是在执行相关的COMMIT TRANSACTION或者ABORT TRANSACTION语句之前嵌套的多个BEGIN TRANSACTION语句的结果 系统统计变量

下表描述了用于确定数据库系统使用信息与环境信息的管理工具:

变 量 @@CONNECTIONS @@CPU_BUSY @@IDLE @@IO_BUSY @@PACK_RECEIVED @@PACK_SENT @@PACKET_ERRORS @@TIMETICKS @@TOTAL_ERRORS @@TOTAL_READ @@TOTAL_WRITE 返回打开连接的次数 从上次启动服务器开始,SQL Server一共工作的毫秒数 从上次启动服务器开始,SQL Server一共空闲的毫秒数 从上次启动服务器开始,SQL Server一共处理I/0的毫秒数 从上次启动服务器开始,SQL Server一共收到的网络数据包数 从上次启动服务器开始,SQL Server一共发送的网络数据包数 从上次启动服务器开始,SQL Server一共收到的网络数据包错误数 每个时钟滴答有多少毫秒 从上次启动服务器开始,SQL Server一共收到的磁盘I/O错误数 从上次启动服务器开始,SQL Server一共进行的物理磁盘读取次数 从上次启动服务器开始,SQL Server一共进行的物理磁盘写入次数 说 明 小结

函数用于实现业务逻辑,并且能够将编程功能带入查询中。许多有用而且强大的函数是T-SQL的标准功能。和面向过程、面向对象语言中的函数一样,SQL函数也将程序功能封装到一个简单的可重用的包中,这就减少了查询设计人员的很多工作。由于Transact-SQL是面向任务的语言,而不是过程语言。虽然函数可以进行过程编程,可以在查询中构建颇为复杂的逻辑,但是SQL语言的优势在于让设计人员表达出设计意图,而不是完成一项任务的确切步骤与方法。只要使用方法正确,这些步骤和方法都可以由函数来实现。

在T-SQL中,参数用于将值传递给函数,大多数函数的返回结果是一个标量,或者说单一值。函数分为确定性函数与非确定性函数。在使用相同的参数时,确定性函数总是返回相同的值,而非确定性函数的返回值则与其他资源有关,所以SQL Server必须显式地执行这种函数。因此,在定制的SQL编程对象中,对非确定性函数的使用是有限制的。

SQL函数执行种类繁多的重要任务,包括数学运算、比较、日期解析与操纵、高级字符串操纵等。


SQL函数说明大全(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:华南师范大学现代远程教育校外学习中心一览表 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: