Sql Server函数全解(五)之系统函数
系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容。使用SQL SERVER中的系统函数可以在需要的时候获取这些信息。下面介绍系统函数的作用和使用方法。
1.返回表中指定字段的长度
COL_LENGTH(table,column)函数返回表中指定字段的长度值。其返回值为int类型,table为要确定其列长度信息的表的名称,是nvarchar类型的表达式。column为要确定其长度的列的名称,是nvarchar类型的表达式.
【例】先创建一个学生表student。
create table student (
i_sid int primary key identity(1,1),
str_stuName varchar(10)
);
SELECT COL_LENGTH('student','str_stuName');

2.返回表中指定字段的名称
COL_NAME(table_id,column_id)函数返回表中指定字段的名称。table_id是表的标识号,column_id是列的标识号,类型为int.
【例】SELECT COL_NAME(OBJECT_ID('student'),1);

3.返回数据表达式的数据的实际长度函数
DATALENGTH(expression)函数返回数据表达式的数据的实际长度,即字节数。其返回值类型为int。null的长度为null。expression可以是仁和数据类型的表达式。
【例】SELECT DATALENGTH(str_stuName) FROM student WHERE i_sid=1;

4.返回数据库的编号
DB_ID(database_name)函数返回数据库的编号,其返回值为SMALLINT类型,如果没有指定database_name,则返回当前数据库的编号。
【例】SELECT DB_ID('master') ,DB_ID('test_db');

5.返回数据库的名称
DB_NAME(database_id)函数返回数据库的名称。其返回值类型为nvarchar(128).database_id是smallint类型的数据。如果没有指定database_id,返回当前数据库的名称。
【例】USE master;
SELECT DB_NAME('master'),DB_NAME(DB_ID('sample_db'));
USE 语句将master选择为当前数据库,因此DB_NAME()返回值为当前数据库master,DB_NAME(DB_ID('sample_db'))返回值sample_db本身.

6.返回数据库当前默认的null值
getAnsiNull()(database_name)函数返回当前数据库默认的NULL值,其返回值类型为int。getAnsiNull()函数对ANSI空值NULL返回1;如果没有定义ANSI空值,返回0;
【例】SELECT GETANSINULL('master');
如果指定数据库为空性,即允许为空值,并且,没有显示定义列或数据类型为空性,则GETANSINULL返回1;

7.返回服务器端计算机的标识号
HOST_ID()函数返回服务器端计算机的标识号。其返回值类型为char(10).
【例】查看当前服务器端计算机的标识号,如下:
SELECT HOST_ID();
使用HOST_ID()函数可以记录那些向数据库中插入数据的计算机终端ID.

8.返回服务器端计算机名称
HOST_NAME()函数返回服务器端计算机的名称,其返回值类型为nvarchar(128);
【例】查看当前服务器端计算机的名称,如下:
SELECT HOST_NAME();

9.返回数据库对象的编号
OBJECT_ID(database_name.schema_name.object_name,object_type)函数返回数据库对象的编号,其返回值类型为int。object_name为要使用的对象,它的数据类型为varchar或nvarchar。如果object_name的数据类型为varchar,则它将隐士转换为nvarchar。可以选择是否指定数据库和架构名称。object_type指定架构范围的对象类型.
【例】返回sample_db数据库中student表的对象ID
SELECT OBJECT_ID('sample_db.dbo.student');

10.返回用户的SID(安全标识号)
SUSER_SID(login_name)函数根据用户的登录名返回用户的SID(Security Identification Number,安全标识号)。其返回值类型为int,如果不指定login_name,则返回当前用户的sid.
【例】查看当前用户的安全标识号,输入语句如下
SELECT SUER_SID();

11.返回用户的登录名
SUSER_SNAME([server_user_id])函数返回与安全标识号(SID)关联的登录名,如果没有指定server_user_id,则返回当前用户的登录名。其返回值类型为nvarchar(128);
【例】返回与windows安全标识号关联的登录名,如下:
SELECT SUSER_SNAME(0x01),SUSER_SNAME() ;

12.返回数据库对象的名称
OBJECT_NAME(object_id[,database_id])函数返回数据库对象的名称。database_id要在其中查找对象的数据库的ID,数据类型为int。object_id为要使用的对象ID,数据类型为int,假定为指定数据库的对象,如果不指定database_id,则假定为当前数据库上下文中的架构范围内的对象,其返回值类型为sysname;
【例】查看sample_db数据库中对象ID值为325576198的对象名称
SELECT OBJECT_NAME(,DB_ID('sample_db')), OBJECT_ID('sample_db.dbo.student');

13.返回数据库用户的标识号
USER_ID(user)函数根据用户名返回数据库用户的ID。其返回值为int类型,如果没有指定user,则返回当前用户的数据库ID。
【例】显示当前用户的数据库标识号,输入如下语句
USE sample_db;
SELECT USER_ID();

14.返回数据库用户名
USER_NAME(id)函数根据与数据库用户关联的ID号返回数据库用户名。其返回值类型为nvarchar(256).如果没有指定id,则返回当前数据库的用户名。
【例】查找当前数据库名称,输入如下语句
USE sample_db;
SELECT USER_NAME();

上面例子的sql脚本
--系统函数
create database sample_db;
use sample_db;
create table student (
i_sid int primary key identity(1,1),
str_stuName varchar(10)
);
--1.返回表中指定字段的长度
SELECT COL_LENGTH('student','str_stuName');
--2.返回表中指定字段的名称
SELECT COL_NAME(OBJECT_ID('student'),1);
--3.返回数据表达式的数据的实际长度函数
insert into student values('Jamse');
select *from student
SELECT DATALENGTH(str_stuName)FROM student where i_sid=1;
--4.返回数据库的编号
SELECT DB_ID('master') ,DB_ID('sample_db');
--5.返回数据库的名称
use master
SELECT DB_NAME(),DB_NAME(DB_ID('sample_db'));
--6.返回数据库当前默认的null值
SELECT GETANSINULL('master');
--7.返回服务器端计算机的标识号
SELECT HOST_ID()
--8.返回服务器端计算机名称
SELECT HOST_NAME();
--9.返回数据库对象的编号
SELECT OBJECT_ID('sample_db.dbo.student');
--10.返回用户的SID(安全标识号)
SELECT SUSER_SID('sa'),SUSER_SID();
--11.返回用户的登录名
SELECT SUSER_SNAME(0x01),SUSER_SNAME();
--12.返回数据库对象的名称
SELECT OBJECT_NAME(325576198,DB_ID('sample_db')), OBJECT_ID('sample_db.dbo.student');
--13.返回数据库用户的标识号
USE sample_db;
SELECT USER_ID();
--14.返回数据库用户名
USE sample_db;
SELECT USER_NAME();
Sql Server函数全解(五)之系统函数的更多相关文章
- Sql Server函数全解<五>之系统函数
原文:Sql Server函数全解<五>之系统函数 系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些 ...
- Sql Server函数全解<三>数据类型转换函数和文本图像函数
阅读目录 一:数据类型转换函数 二:文本和图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和flo ...
- Sql Server函数全解(三)数据类型转换函数和文本图像函数
一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士 ...
- Sql Server函数全解<四>日期和时间函数
原文:Sql Server函数全解<四>日期和时间函数 日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...
- SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器
SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
- Sql Server之旅——第五站 确实不得不说的DBCC命令
原文:Sql Server之旅--第五站 确实不得不说的DBCC命令 今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ...
- SQL SERVER分区详解(1-5)
转自: (五)SQL Server分区自动化案例 (四)SQL Server分区管理 (三)索引分区知识详解 (二)SQL Server分区创建过程 (一)SQL Se ...
- SQL Server数据全同步及价值分析[终结版]
SQL Server数据全同步[终结版] 版权全部.转载请注明出处.谢谢! 经过两天的同步编写和測试.出了第一个Release版本号: 1. 本函数仅支持单向同步.即从一个主数据库想多个从数据库同步 ...
随机推荐
- CYQ.Data+EasyUI开发:几个相关的问题CheckBox、Tree、TreeGrid
前言: 话说到新的公司已经呆了三个星期了,从上班的第二天开始就一直在写项目文档和给开发人员培训,以至于我的QQ签名从"我不是来搞培训的“到最后直接换成”我是来搞培训的“. 虽然挂名开发经理, ...
- 眼见为实:.NET类库中的DateTimeOffset用途何在
在 EnyimMemcachedCore(支持.NET Core的memached客户端)中实现 Microsoft.Extensions.Caching.Distributed.IDistribut ...
- ABP理论学习之验证DTO
返回总目录 本篇目录 验证介绍 使用数据注解 自定义验证 标准化 验证介绍 首先应该验证应用的输入.用户或者其它应用都可以向该应用发送输入.在一个web应用中,验证通常要实现两次:在客户端和服务器端. ...
- 【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件
目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET.BMap.NET.WindowsForm以及BMap.NET.WinformDemo. BMap.NET 对百度地 ...
- [.net 面向对象程序设计进阶] (20) 反射(Reflection)(上)利用反射技术实现动态编程
[.net 面向对象程序设计进阶] (20) 反射(Reflection)(上)利用反射技术实现动态编程 本节导读:本节主要介绍什么是.NET反射特性,.NET反射能为我们做些什么,最后介绍几种常用的 ...
- 在C#代码中应用Log4Net(三)Log4Net中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- 微冷的雨之Java中的多线程初理解(一)
在讲解多线程前,我们必须理解什么是多线程?而且很多人都会将进程和线程做对比. 进程和线程 进程:进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序在 ...
- 2013 duilib入门简明教程 -- XML基础类(7)
现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍. 前面的教程我们写了很多代码,为的是让大家了解下基本流程,其实duilib已经对常用的操作做了很好的包装,正式使用时无需像前面的教程那样 ...
- php ajax 交互
html 页面 <body> <button id="oBtn">点击我</button> <script type="text ...
- Css概要与选择器,刻度单位
目录 一.CSS3概要 1.1.特点 1.2.效果演示 1.3.帮助文档与学习 二.选择器 1.1.基础的选择器 1.2.组合选择器 1.3.属性选择器 1.4.伪类 1.5.伪元素 三.特殊性(优先 ...