系统函数用于获取有关计算机系统、用户、数据库和数据库对象的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。与其它函数一样,可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用系统函数。
·COL_LENGTH() COL_LENGTH() 函数语法如下: COL_LENGTH (<'table_name'>, <'column_name'>) COL_LENGTH() 函数返回表中指定字段的长度值。其返回值为INT 类型。 ·COL_NAME() COL_NAME() 函数语法如下: COL_NAME (<table_id>, <column_id>) COL_NAME() 函数返回表中指定字段的名称,即列名。其返回值为SYSNAME 类型。其中table_id 和column_id 都是INT 类型的数据,函数用table_id 和column_id 参数来生成列名字符串。关于如何获得table_id 和column_id, 请参见OBJECT_ID() 函数。 ·DATALENGTH() DATALENGTH() 函数语法如下: DATALENGTH (<expression>) DATALENGTH() 函数返回数据表达式的数据的实际长度。其返回值类型为INT。DATALENGTH() 函数对VARCHAR、 VARBINARY、 TEXT、 IMAGE、 NVARCHAR和NTEX 等能存储变动长度数据的数据类型特别实用。NULL 的长度为NULL。· DB_ID() DB_ID() 函数语法如下:
DB_ID (['database_name']) DB_ID() 函数返回数据库的编号。其返回值为SMALLINT 类型。如果没有指定database_name, 则返回当前数据库的编号。·DB_NAME() DB_NAME() 函数语法如下:
DB_NAME (database_id) DB_NAME() 函数返回数据库的名称.其返回值类型为NVARCHAR (128). database_id是SMALLINT 类型的数据.如果没有指定database_id, 则返回当前数据库的名称.· FORMATMESSAGE() ·GETANSINULL() GETANSINULL() 函数语法如下: GETANSINULL() (['database_name']) GETANSINULL() 函数返回当前数据库默认的NULL 值.其返回值类型为INT.GETANSINULL() 函数对ANSI 空值NULL 返回1; 如果没有定义ANSI 空值,则返回0.·HOST_ID() HOST_ID() 函数语法如下:
HOST_ID() HOST_ID() 函数返回服务器端计算机的名称.其返回值类型为NCHAR. ·HOST_NAME() HOST_NAME() 函数语法如下: HOST_NAME() HOST_NAME() 函数返回服务器端计算机的名称.其返回值类型为CHAR (8). ·IDENTITY() IDENTITY() 函数语法如下: IDENTITY (<data_type>[, seed, increment]) [AS column_name]) IDENTITY() 函数只在SELECT...INTO 语句中使用,用于插入一个identity column列到新表中.其返回值类型与data_type 的类型相同. 其中: data_type 指定数据类型.data type 是INTEGER 或DECIMAL 类的数据类型.Seed指定identity column 的初值,即第一个值.Increment 指定增加一个记录时,记录的identity column 值应在前记录的基础上增加的值.seed 和increment 的缺省值为1.column_name 是所插入的identity column 的列名.虽然AS column_name 为可选项,但由于函数在表中插入了一个新列,所以必须指定列名.如果不使用AS column_name 选项,可以使用以下两种方式来指定列名: (1) select identity (int, 1, 1) as column_name into newtable from oldtable (2) select column_name = identity (int, 1, 1) into newtable from oldtable ·IDENT_INCR() IDENT_INCR() 函数语法如下: IDENT_INCR ('table_or_view') IDENT_INCR() 函数返回表中标识性字段identity column 的增量.若无此字段,则返回NULL 值.其返回值类型为NUMERIC. ·IDENT_SEED() IDENT_SEED() 函数语法如下: IDENT_SEED (<'table_or_view'>) IDENT_SEED() 函数返回表中标识性字段identity column 的初值.若无此字段,则返回NULL 值.其返回值类型为NUMERIC. ·INDEX_COL() INDEX_COL() 函数语法如下: INDEX_COL (<'table_name'>, <index_id>, <key_id>) INDEX_COL() 函数返回表内索引识别码为index_id 的索引的名称,并找出组成该索引的列组合中第key_id 个列名.其返回值类型为NCHAR. ·ISDATE() ISDATE() 函数语法如下: ISDATE (<expression>) ISDATE() 函数判断所给定的表达式是否为合理日期,如果是则返回1, 不是则返回0. ·ISNULL() ISNULL() 函数语法如下: ISNULL (<check_expression>, <replacement_value>) ISNULL() 函数将表达式中的NULL 值用指定值替换.如果check_expresssion 不是NULL, 则返回其原来的值,否则,返回replacement_value 的值. 提醒:reaplacement_value的数据类型应与chech_expresssion一致. ·ISNUMERIC() ISNUMERIC() 函数语法如下: ISNUMERIC (<expression>) ISNUMERIC() 函数判断所给定的表达式是否为合理的数值(INTEGER、 FLOATING POINT NUMBER、 MONEY 或DECIMAL 类型),如果是则返回1, 不是则返回0. 提醒:检查MONEY型数据时,应先用CONVERT()函数将其转换为数值型或字符型。 ·NEWID NEWID() 函数语法如下: NEWID() NEWID() 函数返回一个UNIQUEIDENTIFIER 类型的数值.此函数使用计算机的网卡的Ethernet 地址加上经由CPU Clock 产生的数字而得到其返回值.由于网卡的Ethernet地址是全球惟一的(在未来近一百年内不会生产出相同Ethernet 地址的网卡),因而函数所产生的数字也是惟一的.·NULLIF() NULLIF() 函数语法如下:
NULLIF (<expression1>, <expression2>) NULLIF() 函数在expression1 与expression2 相等时返回NULL 值,若不相等时则返回expression1 的值.其返回值类型与expression1 相同.expression1 与expression2 应为同类的数据类型. ·OBJECT_ID() OBJECT_ID() 函数语法如下: OBJECT_ID (<'object_name'>) OBJECT_ID() 函数返回数据库对象的编号.其返回值类型为INT. 提醒:当指定一个临时表的表名时,其表名的前面必须加上临时数据库名"tempdb",如:select object_id("tempdb..#mytemptable"). ·OBJECT_NAME() OBJECT_NAME() 函数语法如下: OBJECT_NAME (<object_id>) OBJECT_NAME() 函数返回数据库对象的名称.其返回值类型为NCHAR.·PARSENAME()
PARSENAME() 函数语法如下: PARSENAME (<'object_name '>, <object_piece>) PARSENAME() 函数返回一个数据库对象完整名称中的特定部分(对象名称或数据库拥有者名称或数据库名称或服务器名称).其返回值类型为NCHAR. 其中object_piece 为INT 类型,其取值如下: 对象名称Object name; 数据库拥有者名称Owner name; 数据库名称Database name; 服务器名称Server name. 如果object_name 或object_piece 为NULL, 则返回NULL 值.·STATS_DATE() STATS_DATE() 函数语法如下:
STATS_DATE (<table_id>, <index_id>) STATS_DATE() 函数返回最新的索引统计日期.其返回值类型为DATETIME. ·SUSER_SID() SUSER_ SID() 函数语法如下: SUSER_SID (['login_name']) SUSER_SID() 函数根据用户登录名返回用户的SID (Security Identification Number,安全帐户名)号.其返回值类型为INT. 如果不指定login_name, 则返回当前用户的SID号. ·SUSER_SNAME() SUSER_SNAME() 函数语法如下: SUSER_SNAME ([server_user_sid]) SUSER_SNAME() 函数根据SID 号返回用户的登录名.如果没有指定server_user_sid,则返回当前用户的登录名.其返回值类型为NCHAR. ·USER_ID() USER_ID() 函数语法如下: USER_ID (['user_name']) USER_ID() 函数根据用户数据库的用户名返回用户的数据库ID 号.其返回值类型为INT. 如果没有指定user_name, 则返回当前用户的数据库ID 号. ·USER_NAME() USER_NAME() 函数语法如下: USER_NAME ([user_id]) USER_NAME() 函数根据用户的数据库ID 号返回用户的数据库用户名.其返回值类型为NCHAR. 如果没有指定user_id, 则返回当前数据库的用户名.