使用系统函数

系统函数使您可以访问 SQL Server 2005 系统表中的信息,而不必直接访问系统表。

某些 Transact-SQL 系统函数的名称以两个 at 符号 (@@) 开头。虽然在 SQL Server 的早期版本中,@@function 被作为全局变量,但它们并不是变量,而且其功能与变量的功能不同。@@function 是系统函数,并且其语法的使用遵循函数的规则。

用于数据库、主机、对象、登录名和用户的下列每对系统函数在给定标识符 (ID) 时返回名称,在给定名称时返回 ID:

  • DB_ID 和 DB_NAME
  • HOST_ID 和 HOST_NAME
  • OBJECT_ID 和 OBJECT_NAME
  • SUSER_ID 和 SUSER_NAME(或 SUSER_SID 和 SUSER_SNAME)
  • USER_ID 和 USER_NAME

例如,若要获得数据库 ID 号,请使用 DB_ID 函数,而不用执行 sysobjects 表的 SELECT 语句。

下面的示例说明如何检索使用 SQL Server 身份验证登录的当前用户的用户名:

SELECT SUSER_NAME()

下列函数与此类似,但它们不是成对出现的,而且带有的输入参数不止一个:

  • COL_LENGTH
    返回列长度,而不是该列中存储的任何单个字符串的长度。使用 DATALENGTH 函数可以确定特定值中的字符总数。
    下面的示例返回 Employees 表中 LastName 列的列长度和数据长度:

    SELECT COL_LENGTH('Employees', 'LastName') AS Col_Length, 
       DATALENGTH(LastName) AS DataLength
    FROM Employees
    WHERE EmployeeID > 6
    
  • COL_NAME
    返回列名称。

  • INDEX_COL
    返回索引列名称。

我们建议您使用系统函数、信息架构视图或系统存储过程来获得系统信息,而不要直接查询系统表,因为不同版本 SQL Server 的系统表可能会有极大的不同。

请参阅

概念

DEFAULT 定义

其他资源

系统函数 (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助