6.6 显示系统信息函数

系统信息包括当前使用的数据库名称、主机名、系统错误信息以及用户名称等内容。使用SQL Server中的系统函数可以在需要的时候获取这些信息。本节将介绍常用的系统函数的作用和使用方法。

6.6.1 返回数据库的名称

DB_NAME(database_id)函数返回数据库的名称。其返回值类型为nvarchar(128)。database_id是smallint类型的数据。如果没有指定database_id,则返回当前数据库的名称。

【例6-48】返回指定ID的数据库的名称,输入语句如下:

执行结果如图6-48所示。

图6-48 DB_NAME()函数

USE语句将master选择为当前数据库,因此DB_NAME()返回值为当前数据库master;DB_NAME(DB_ID ('test_db'))返回值为test_db本身。

6.6.2 OBJECT_ID()函数

OBJECT_ID(database_name.schema_name.object_name,object_type)函数返回数据库对象的编号。其返回值类型为int。object_name为要使用的对象,它的数据类型为varchar或nvarchar。如果object_name的数据类型为varchar,则它将隐式转换为nvarchar。可以选择是否指定数据库和架构名称。object_type指定架构范围的对象类型。

【例6-49】返回test_db数据库中stu_info表的对象ID,输入语句如下:

    SELECT OBJECT_ID('test_db.dbo.stu_info');

执行结果如图6-49所示。

图6-49 OBJECT_ID()函数

6.6.3 返回表中指定字段的长度值

COL_LENGTH(table,column)函数返回表中指定字段的长度值。其返回值为INT类型。table为要确定其列长度信息的表的名称,是nvarchar类型的表达式。column为要确定其长度的列的名称,是nvarchar类型的表达式。

【例6-50】显示test_db数据库中stu_info表中的s_name字段长度,输入语句如下:

执行结果如图6-50所示。

图6-50 COL_LENGTH()函数

6.6.4 返回表中指定字段的名称

COL_NAME(table_id,column_id)函数返回表中指定字段的名称。table_id是表的标识号,column_id是列的标识号,类型为int。

【例6-51】显示test_db数据库中stu_info表中的第一个字段的名称,输入语句如下:

    SELECT COL_NAME(OBJECT_ID('test_db.dbo.stu_info'),1);

执行结果如图6-51所示。

图6-51 COL_NAME()函数

6.6.5 返回数据库用户名

USER_NAME(id)函数根据与数据库用户关联的id号返回数据库用户名。其返回值类型为nvarchar(256)。如果没有指定id,则返回当前数据库的用户名。

【例6-52】查找当前数据库名称,输入语句如下:

执行结果如图6-52所示。

图6-52 USER_NAME()函数