SQL Server系统函数有哪些,基本用法是什么

Admin 2022-08-03 群英技术资讯 336 次浏览

这篇文章将为大家详细讲解有关“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系统函数有哪些,基本用法是什么的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注群英网络,群英网络将为大家推送更多相关的文章。 群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服