![SQL Server 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/709/27111709/b_27111709.jpg)
6.6 显示系统信息函数
系统信息包括当前使用的数据库名称、主机名、系统错误信息以及用户名称等内容。使用SQL Server中的系统函数可以在需要的时候获取这些信息。本节将介绍常用的系统函数的作用和使用方法。
6.6.1 返回数据库的名称
DB_NAME(database_id)函数返回数据库的名称。其返回值类型为nvarchar(128)。database_id是smallint类型的数据。如果没有指定database_id,则返回当前数据库的名称。
【例6-48】返回指定ID的数据库的名称,输入语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P89_37627.jpg?sign=1738880517-hYXmvFxPsM7vd9WtN1FmR015wtrHAfOw-0-09e4cf19621af572540318ad249a1f4f)
执行结果如图6-48所示。
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P89_10520.jpg?sign=1738880517-A4b8NkudDkjp8Oi8Ok6A4bWmCmVP7gbC-0-1d39bcd3b50a0ff6ae6fc9d64099ff10)
图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所示。
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P90_10582.jpg?sign=1738880517-XeUEDAUhhCfAIV7rJOJTqmLDJ0ueUbX5-0-3ee1fc0cdb74f967121c5911f5ce75cb)
图6-49 OBJECT_ID()函数
6.6.3 返回表中指定字段的长度值
COL_LENGTH(table,column)函数返回表中指定字段的长度值。其返回值为INT类型。table为要确定其列长度信息的表的名称,是nvarchar类型的表达式。column为要确定其长度的列的名称,是nvarchar类型的表达式。
【例6-50】显示test_db数据库中stu_info表中的s_name字段长度,输入语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P90_37633.jpg?sign=1738880517-Uy0BkgB12VyzMBCgNsPPo6h0EXopLyAG-0-f0b3592da0e55ce9c5056d7101969897)
执行结果如图6-50所示。
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P90_10590.jpg?sign=1738880517-U45X2rOeaXlD5Mf6aAbQJqvGtP82liWs-0-949f5766b699eb87c053f91ddc6010fd)
图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所示。
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P90_10598.jpg?sign=1738880517-551vzMrCrEynuyQ6OCd6Lw7FUYqcgXp1-0-052a9b7a3c3e8d93cbb09db9847e86f8)
图6-51 COL_NAME()函数
6.6.5 返回数据库用户名
USER_NAME(id)函数根据与数据库用户关联的id号返回数据库用户名。其返回值类型为nvarchar(256)。如果没有指定id,则返回当前数据库的用户名。
【例6-52】查找当前数据库名称,输入语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P90_37637.jpg?sign=1738880517-ITINhk3vl79bbgvs4jUJ09VvN4L8IC3d-0-c7c39658830f05882ae86865871238b2)
执行结果如图6-52所示。
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P90_10606.jpg?sign=1738880517-oDtJlHlLdIIzs1lhLULv5oIubycvq9GS-0-5ebb432f516f6352de87477f62e1fc84)
图6-52 USER_NAME()函数