SQL Server系统函数介绍

一、常用函数:

  • APP_NAME: 返回当前会话的应用程序名称(如果应用程序进行了设置)。
SELECT APP_NAME()
  • COALESCE: 返回其参数中第一个非空表达式
SELECT COALESCE(NULL,NULL,123,NULL)
  • COL_LENGTH(table,column):返回table表中column字段的长度;
SELECT COL_LENGTH('person','gender'),COL_LENGTH('person','FirstName');
  • COL_NAME(TABLE_ID,COLUMN_ID):返回指定表中指定字段的名称;
SELECT COL_NAME(OBJECT_ID('person'),1);---返回person表中第1个字段的名称;
  • COLLATIONPROPERTY: 返回给定排序规则的属性
  • CURRENT_TIMESTAMP: 返回当前的日期和时间。此函数等价于 GETDATE()
  • CURRENT_USER: 返回当前的用户。

此函数等价于 USER_NAME()

SELECT CURRENT_USER
  • DATALENGTH(x): 返回字段x的数据的实际长度,即字节数,NULL的长度为NULL;
SELECT DATALENGTH('id'),DATALENGTH('Gender') FROM person WHERE id=2;
  • @@ERROR: 返回最后执行的 Transact-SQL 语句的错误代码
  • fn_helpcollations: 返回 Microsoft® SQL Server™ 2000 支持的所有排序规则的列表。
  • fn_servershareddrives: 返回由群集服务器使用的共享驱动器名称
  • fn_virtualfilestats: 返回对数据库文件(包括日志文件)的 I/O 统计
  • FORMATMESSAGE: 从 sysmessages 现有的消息构造消息。

FORMATMESSAGE 与 RAISERROR 语句的功能相似;但 RAISERROR 立即输出消息而 FORMATMESSAGE: 返回编辑后的信息供进一步处理

  • GETANSINULL: 返回会话的数据库的默认为空性。

该函数对ANSI空值NULL返回1,如果没有定义ANSI空值NULL,则返回0;

SELECT GETANSINULL('test2'),GETANSINULL('person'); ---test2是数据库,person是数据表;
  • HOST_ID: 返回工作站标识号。

返回值类型为CHAR(10);

SELECT HOST_ID();   --使用该函数可以记录那些想数据表中插入数据的计算机终端的ID;
  • HOST_NAME: 返回工作站名称。
SELECT HOST_NAME();
  • IDENT_INCR: 返回增量值(返回形式为 numeric(@@MAXPRECISION,0)),该值是在带有标识列的表或视图中创建标识列时指定的
  • IDENT_SEED: 返回种子值(返回形式为 numeric(@@MAXPRECISION,0)),该值是在带有标识列的表或视图中创建标识列时指定的
  • IDENTITY(函数): 只用在带有 INTO table 子句的 SELECT 语句中,以将标识列插入到新表中。

尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。(自动采番时可以起到作用)

  • ISDATE: 确定输入表达式是否为有效的日期
  • ISNULL: 使用指定的替换值替换 NULL
SELECT AVG(ISNULL(id,0)) FROM dbo.school AS s
  • ISNUMERIC: 确定表达式是否为一个有效的数字类型
PRINT ISNUMERIC('1223A')
  • NEWID: 创建 uniqueidentifier 类型的唯一值
  • NULLIF: 如果两个指定的表达式相等,则返回空值。
SELECT NULLIF('AA','AA')
  • PARSENAME: 返回对象名的指定部分。可以检索的对象部分有对象名、所有者名称、数据库名称和服务器名称
  • PERMISSIONS: 返回一个包含位图的值,表明当前用户的语句、对象或列权限。
  • @@ROWCOUNT: 返回受上一语句影响的行数
  • ROWCOUNT_BIG: 返回受执行的最后一个语句影响的行数。该函数的功能与 @@ROWCOUNT 一样,除非 ROWCOUNT_BIG 的返回类型是 bigint。
  • SERVERPROPERTY: 返回有关服务器实例的属性信息
  • SESSIONPROPERTY: 返回会话的 SET 选项设置
  • SESSION_USER: 是一个 niladic 函数,允许在未指定默认值时将系统为当前会话的用户名提供的值插入到表中。还允许在查询、错误信息等中使用用户名
  • SCHEMA_NAME: 查看Schema的ID和Name
  • STATS_DATE: 返回最后一次更新指定索引统计的日期
SELECT STATS_DATE(OBJECT_ID('school'),1)
  • SYSTEM_USER: 返回当前系统用户名
  • SUSER_ID():根据登录名返回用户的SID(安全标识号)
SELECT SUSER_SID(),SUSER_SID('COMPU\Administrator'); --不带参数时返回当前用户的ID,也可以带参数指定用户;
  • SUSER_SNAME():返回与安全标识符关联的登录名

返回值类型为NVARCHAR(128);

SELECT SUSER_SNAME(),SUSER_SNAME(0x010500000000000515000000C1289E4023B53F66B8323512E9030000);
  • @@TRANCOUNT: 返回当前连接的活动事务数
  • USER_ID():根据指定用户名返回数据库用户的ID,

如果没有指定用户名,则返回当前用户的数据库ID;

SELECT USER_ID();
  • USER_NAME():根据与数据库用户关联的ID返回数据库用户名,

返回值类型为nvarchar(256);

SELECT USER_NAME(),USER_NAME(USER_ID());

二、插入后返回值的方法:

  • SCOPE_IDENTITY: 返回为当前会话和当前作用域中的任何表最后生成的标识值。 SELECT SCOPE_IDENTITY();(推荐)
  • @@IDENTITY: 返回为当前会话的所有作用域中的任何表最后生成的标识值。 SELECT @@Identity;
  • IDENT_CURRENT: 返回为任何会话和任何作用域中的特定表最后生成的标识值。SELECT IDENT_CURRENT('table_name');

到此这篇关于SQL Server系统函数的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SQL Server中字符串函数的用法详解

    在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数. 一.编码转换 1.获取字符的ASCII码:ascii ASCII(espression) 这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值. 返回值:int数据类型. 注意:如果是多个字符的字符串,也只是返回第一个字符的ASCII码值. select ASCII('f') --输出 102 2.获取ASCII码对应的字符:cha

  • SQL Server中数学函数的用法

    1.计算绝对值ABS ABS函数对一个数值表达式结果计算绝对值(bit数据类型除外),返回整数. 语法格式: ABS(数值表达式) 返回值:与数值表达式类型一致的数据 示例: SELECT ABS(-1) --输出 1 2.获取大于等于最小整数值Celling CEILING函数返回大于等于数值表达式(bit数据类型除外)的最小整数值.俗称天花板函数,尽量往大的取整. 语法格式: CEILING(数值表达式) 返回值:与数值表达式类型一致的数据. 示例: SELECT Celling(123.1

  • SQL Server中日期时间函数的用法详解

    1.getdate():获取当前日期 返回当前SQLServer服务器所在计算机的日期和时间.返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内. select getdate() --输出 2013-03-09 15:16:00.570 2.getutcdate():获取UTC时间值 select GETUTCDATE() -- 2013-06-18 08:02:53.253 3.year():获取年度信息 year函数以int数据类型的格式返回特定日期的年度信息.其中的

  • SQL Server中的逻辑函数介绍

    IIF: 根据布尔表达式计算为 true 还是 false,返回其中一个值. IIF 是一种用于编写 CASE 表达式的快速方法. 它将传递的布尔表达式计算为第一个参数,然后根据计算结果返回其他两个参数之一.也即,如果布尔表达式为 true,则返回 true_value:如果布尔表达式为 false 或未知,则返回 false_value. true_value 和 false_value 可以是任何类型. 语法: IIF ( boolean_expression, true_value, fa

  • SQL Server中的文本函数和图像函数介绍

    1.查找特定字符串PATINDEX 语法与字符串的patindex一样. 2.获取文本指针TEXTPTR SQLServer在存储文本类型(ntext.text)和图像数据类型(image)时,默认情况是与常见的基本数据类型(如char.int等)这样的数据时单独存储的,也就是说,如果一个表中的字段有基本类型和图像文本类型,那么在输入数据时,基本类型和图像文件数据并不是保存在同一个页面上,而是分离存储的.分离存储后,那么基本类型数据和文本图像类型数据所在的页面就是通过文本指针建立联系,是一个16

  • SQL Server中聚合函数的用法

    聚合函数对一组值执行计算,并返回单个值. 除了 COUNT 外,聚合函数都会忽略 Null 值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. OVER 子句可以跟在除 STRING_AGG.GROUPING 或 GROUPING_ID 函数以外的所有聚合函数后面. 只能在以下位置将聚合函数作为表达式使用: SELECT 语句的选择列表(子查询或外部查询). HAVING 子句. T-SQL提供的聚合函数一共有13个之多. 1.avg:平均值 avg( [ all |

  • SQL Server中元数据函数的用法

    1.获取数据库标识符:DB_ID DB_ID函数用于获取当前数据库的唯一ID(int数据类型),数据库ID用于服务器上唯一区分书库. 语法格式: DB_ID (['database_name']) 参数中的database_name是sysname类型的数据库名称,为可选参数.如果没有指定则返回当前工作数据库的ID. 返回值: int数据类型的数据库标识符. 示例: select DB_ID() --输出 8 2.获取数据库名称:DB_NAME DB_NAME函数用于红区当前数据库的名称(nva

  • SQL Server系统函数介绍

    一.常用函数: APP_NAME: 返回当前会话的应用程序名称(如果应用程序进行了设置). SELECT APP_NAME() COALESCE: 返回其参数中第一个非空表达式 SELECT COALESCE(NULL,NULL,123,NULL) COL_LENGTH(table,column):返回table表中column字段的长度: SELECT COL_LENGTH('person','gender'),COL_LENGTH('person','FirstName'); COL_NAM

  • 深入学习SQL Server聚合函数算法优化技巧

    Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值执行计算并返回单一的值.聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. 一.写在前面 如果有对Sql server聚合函数不熟或者忘记了的可以看我之前的一片博客. 本文中所有数据演示都是用

  • SQL Server中函数、存储过程与触发器的用法

    一.函数 函数分为(1)系统函数,(2)自定义函数. 其中自定义函数又可以分为(1)标量值函数(返回单个值),(2)表值函数(返回查询结果) 本文主要介绍自定义函数的使用. (1)编写一个函数求该银行的金额总和 create function GetSumCardMoney() returns money as begin declare @AllMOney money select @AllMOney = (select SUM(CardMoney) from BankCard) return

  • SQL Server 常用函数使用方法小结

    之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值是 0,而 SQL 里面起始值是 1.傻傻分不清楚... 这篇博客作为记录 SQL 的函数的使用方法,想到哪里用到哪里就写到哪里... SubString():用于截取指定字符串的方法.该方法有三个参数: 参数1:用于指定要操作的字符串. 参数2:用于指定要截取的字符串的起始位置,起始值为 1 . 参数3:用于指定要截取的长度. select sub

  • Sql Server 开窗函数Over()的使用实例详解

    利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price int) insert @t select 1,'name1','P1',3 union all select 2,'name2','P1',5 union all select 3,'name3','P2',4 union all select 4,'name4

  • SQL Server分隔函数实例详解

    有时候我们在SQL Server中需要对一些字符串进行分隔,比如a,b,c ,按照','进行分割,可以使用下边这个函数方法,新建方法如下: CREATE FUNCTION dbo.f_splitstr(@SourceSql NVARCHAR(MAX),@StrSeprate VARCHAR(100)) RETURNS @temp TABLE(F1 VARCHAR(100)) AS BEGIN DECLARE @ch AS VARCHAR(100) SET @SourceSql=@SourceSq

  • SQL Server 开窗函数 Over()代替游标的使用详解

    前言: 今天在优化工作中遇到的sql慢的问题,发现以前用了挺多游标来处理数据,这样就导致在数据量多的情况下,需要一行一行去遍历从而计算需要的数据,这样处理的结果就是数据慢,容易卡死. 语法介绍: 1.与Row_Number() 函数结合使用,对结果进行排序,这个是我们使用的非常多的 2.与聚合函数结合使用,利用over子句的分组和排序,对需要的数据进行操作 例如:SUM() Over() 累加值.AVG() Over() 平均数 MAX() Over() 最大值.MIN() Over() 最小值

  • SQL Server DATEDIFF() 函数

    定义和用法 DATEDIFF(datepart,startdate,enddate) startdate 和 enddate 参数是合法的日期表达式.datepart 参数可以是下列的值: 实例 select DATEDIFF(dd,'2021-12-01','2021-12-02 ')day --天数 select DATEDIFF(hh,'2021-12-01 08:00','2021-12-01 17:00') hour --小时 select DATEDIFF(mi,'2021-12-0

  • SQL Server DATEDIFF() 函数用法

    定义和用法 DATEDIFF(datepart,startdate,enddate) startdate 和 enddate 参数是合法的日期表达式.datepart 参数可以是下列的值: 实例 select DATEDIFF(dd,'2021-12-01','2021-12-02 ')day --天数 select DATEDIFF(hh,'2021-12-01 08:00','2021-12-01 17:00') hour --小时 select DATEDIFF(mi,'2021-12-0

  • SQL Server COALESCE函数详解及实例

    SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,本文主要讲解其中的一些基本使用:  首先看看联机丛书的简要定义: 返回其参数中第一个非空表达式语法: COALESCE ( expression [ ,...n ] ) 如果所有参数均为 NULL,则 COALESCE 返回 NULL.至少应有一个 Null 值为 NULL

随机推荐