Sql Server函数全解<五>之系统函数

原文: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();
时间: 2024-09-20 10:43:11

Sql Server函数全解<五>之系统函数的相关文章

Sql Server函数全解&lt;三&gt;数据类型转换函数和文本图像函数

原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士转换就无法实现了,此时必须使用显示转换.为了实现这种显示转换,T-SQL提供了两个显示转换函数,分别是CAST和CONVERT函数. CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个

Sql Server函数全解&lt;四&gt;日期和时间函数

原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同的,以time类型值为参数的函数,可以接受datetime类型的参数,但会忽略日期部分. 1.获取系统当前日期的函数getDate();  getDate()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime.[例]sel

Sql Server函数全解&lt;二&gt;数学函数

原文:Sql Server函数全解<二>数学函数   数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数,三角函数(包括正弦函数,余弦函数,正切函数,余切函数).对数函数,随机函数等.在错误产生时,数学函数将返回空值null.本次介绍各种数学函数的功能和用法. 1.绝对值函数ABS(x)和返回圆周率的函数PI()  ABS(x)返回x的绝对值,PI()返回圆周率的值  eg: select ABS(2),ABS(-3.3),ABS(-33),PI(); 正数的绝对值是其本身,2的绝对值

SQL Server数据全同步及价值分析[终结版]

SQL Server数据全同步[终结版] 版权所有,转载请注明出处,谢谢! 经过两天的同步编写和测试,出了第一个Release版本: 1. 本函数仅支持单向同步,即从一个主数据库想多个从数据库同步 2.主数据库的任何增删改都会同步到所有从数据库上 3. 最重要的一点:同步数据库的价值所在:当主数据库服务器不可用时,程序可以使用其他从数据库或者备用数据库,这对于未来公有云和私有云应用具有重大价值! 代码: <span style="font-size:18px;">/// &

ASP.NET2.0连接SQL Server数据库详解

asp.net|server|数据|数据库|详解 本文将详细介绍如何使用Connection对象连接数据库.对 本文将详细介绍如何使用Connection对象连接数据库.对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库.这些Connection对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法. Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection.

ASP.NET2.0 SQL Server数据库连接详解_实用技巧

Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection. SqlConnection类的对象连接SQL Server数据库:OracleConnection 类的对象连接Oracle数据库: OleDbConnection类的对象连接支持OLE DB的数据库,如Access:而OdbcConnection类的对象连接任何支持ODBC的数据库.与数据库的所有通讯最终都是通过Connection对象来完

sql server关键字详解大全(图文)_MsSql

下面把sqlserver中cross apply和outer apply关键字具体介绍展示如下: 1.CROSS APPLY 和OUTER APPLY MSDN解释如下(个人理解不是很清晰): 使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数.表值函数作为右输入,外部表表达式作为左输入. 通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出. APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表. APPLY 有两种形

SQL Server中全角和半角字符的比较问题

server|比较|问题 /*------------------------------------------------------------------------------------ /*欢迎转载,请保留本声明信息 /*作者:翁   彦   enhydraboy@yahoo.com.cn /*------------------------------------------------------------------------------------ 这是一个在我实际一个

SQL SERVER 2000 中的标识值获取函数

server|函数 IDENTITY(标识)列,也有很多人称之为自增列,在SQL Server 2000中,标识列通过IDENTITY来定义,下面是与获取最后插入记录的标识值有关的函数的一个示例说明     SQL Server 中,可以使用 SCOPE_IDENTITY(). @@IDENTITY . IDENT_CURRENT() 来取得最后插入记录的值值,它们的区别在于:SCOPE_IDENTITY() 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值.一个