• 相关软件
    >sp_columns 创建者:webmaster 更新时间:2006-02-16 15:51

    返回当前环境中可查询的指定表或视图的列信息。



    语法


    sp_columns [ @table_name = ] object

        
    [ , [ @table_owner = ] owner ]

        [ , [ @table_qualifier = ] qualifier ]

        [ , [ @column_name = ] column ]

        [ , [ @ODBCVer = ] ODBCVer ]



    参数


    [@table_name =] object



    用来返回目录信息的表或视图的名称。object_name 的数据类型为 nvarchar(384),没有默认值。不支持通配符模式匹配。



    [@table_owner =] owner



    用来返回目录信息的表或视图的对象所有者。owner 的数据类型为 nvarchar(384),默认值为 NULL。不支持通配符模式匹配。如果没有指定 owner,则应用基础 DBMS 默认的表或视图的可视性规则。



    在 Microsoft® SQL Server™ 中,如果当前用户拥有指定名称的表或视图,则返回该表的列。如果没有指定 owner,并且当前用户不拥有指定 object 的表或视图,则 sp_columns 将搜索数据库所有者拥有的指定 object 的表或视图。如果有,则返回该表的列。



    [@table_qualifier =] qualifier



    表或视图限定符的名称。qualifier 的数据类型为 sysname,默认值为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该列表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。



    [@column_name =] column



    只需要一列目录信息时所使用的单列。column 的数据类型为 nvarchar(384),默认值为 NULL。如果没有指定 column,将返回所有列。在 SQL Server 中,column 表示在 syscolumns 表中列出的列名。使用基础 DBMS 的通配符匹配模式,column 可以包含通配符。若要获得最佳的互操作性,网关客户端应假定只有 SQL-92 标准模式匹配(% 和 _ 通配符)。



    [@ODBCVer =] ODBCVer



    是当前所使用的 ODBC 版本。ODBCVer 的数据类型为 int,默认值为 2,表示 ODBC 版本 2。有效值为 2 或 3。有关版本 2 和版本 3 的行为差别,请参见 ODBC SQLColumns 规范。



    返回代码值




    结果集


    sp_columns 目录存储过程与 ODBC 中的 SQLColumns 等价。返回的结果按 TABLE_QUALIFIERTABLE_OWNERTABLE_NAME 排序。




























































































































    列名数据类型描述
    TABLE_QUALIFIERsysname表或视图限定符的名称。该字段可以为 NULL。
    TABLE_OWNERsysname表或视图所有者的名称。该字段始终返回值。
    TABLE_NAMEsysname表或视图的名称。该字段始终返回值。
    COLUMN_NAMEsysname所返回的 TABLE_NAME 每列的列名。该字段始终返回值。
    DATA_TYPEsmallintODBC 数据类型的整型代码。如果数据类型无法映射到 ODBC 类型,则为 NULL。本机数据类型名称在 TYPE_NAME 列中返回。
    TYPE_NAMEvarchar(13)表示数据类型的字符串。基础 DBMS 提供此数据类型的名称。
    PRECISIONint有效数字个数。PRECISION 列的返回值以 10 为基数。
    LENGTHint数据的传输大小。1
    SCALEsmallint小数点右边的数字个数。
    RADIXsmallint数字数据类型的基数。
    NULLABLEsmallint指定是否可以为空。

    1 = 可以为 NULL。

    0 = NOT NULL。


    REMARKSvarchar(254)该字段总是返回 NULL。
    COLUMN_DEFnvarchar(4000)列的默认值。
    SQL_DATA_TYPEsmallintSQL 数据类型出现在描述符的 TYPE 字段时的值。该列与 DATA_TYPE 列相同,datetime 和 SQL-92 interval 数据类型除外。该列始终返回值。
    SQL_DATETIME_SUBsmallintdatetime 及 SQL-92 interval 数据类型的子类型代码。对于其它数据类型,该列返回 NULL。
    CHAR_OCTET_LENGTHint字符或整型数据类型的列的最大字节长度。对于所有其它数据类型,该列返回 NULL。
    ORDINAL_POSITIONint列在表中的顺序位置。表中的第一列为 1。该列始终返回值。
    IS_NULLABLEvarchar(254)表中的列是否可以为空。根据 ISO 规则决定是否可以为空。遵从 ISO SQL 标准的 DBMS 无法返回空字符串。

    YES = 列可以包含 NULL。

    NO = 列不能包含 NULL。



    如果不知道是否可以为空,该列则返回零长度字符串。



    该列返回的值与 NULLABLE 列返回的值不同。


    SS_DATA_TYPEtinyintSQL Server 数据类型,由开放式数据服务扩展存储过程使用。有关更多信息,请参见数据类型




    1. 有关更多信息,请参见 Microsoft ODBC 文档。



    权限


    执行权限默认赋予 public 角色。



    示例


    下面的示例返回指定表的列信息。



    EXEC sp_columns @table_name = 'customers'
    相关文章
    本页查看次数: