返回當(dāng)前環(huán)境中可查詢的指定表或視圖的列信息。
sp_columns [ @table_name = ] object
[ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
[@table_name =] object
用來返回目錄信息的表或視圖的名稱。object_name 的數(shù)據(jù)類型為 nvarchar(384),沒有默認值。不支持通配符模式匹配。
[@table_owner =] owner
用來返回目錄信息的表或視圖的對象所有者。owner 的數(shù)據(jù)類型為 nvarchar(384),默認值為 NULL。不支持通配符模式匹配。如果沒有指定 owner,則應(yīng)用基礎(chǔ) DBMS 默認的表或視圖的可視性規(guī)則。
在 Microsoft? SQL Server? 中,如果當(dāng)前用戶擁有指定名稱的表或視圖,則返回該表的列。如果沒有指定 owner,并且當(dāng)前用戶不擁有指定 object 的表或視圖,則 sp_columns 將搜索數(shù)據(jù)庫所有者擁有的指定 object 的表或視圖。如果有,則返回該表的列。
[@table_qualifier =] qualifier
表或視圖限定符的名稱。qualifier 的數(shù)據(jù)類型為 sysname,默認值為 NULL。多種 DBMS 產(chǎn)品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,該列表示數(shù)據(jù)庫名。在某些產(chǎn)品中,該列表示表所在數(shù)據(jù)庫環(huán)境的服務(wù)器名。
[@column_name =] column
只需要一列目錄信息時所使用的單列。column 的數(shù)據(jù)類型為 nvarchar(384),默認值為 NULL。如果沒有指定 column,將返回所有列。在 SQL Server 中,column 表示在 syscolumns 表中列出的列名。使用基礎(chǔ) DBMS 的通配符匹配模式,column 可以包含通配符。若要獲得最佳的互操作性,網(wǎng)關(guān)客戶端應(yīng)假定只有 SQL-92 標(biāo)準(zhǔn)模式匹配(% 和 _ 通配符)。
[@ODBCVer =] ODBCVer
是當(dāng)前所使用的 ODBC 版本。ODBCVer 的數(shù)據(jù)類型為 int,默認值為 2,表示 ODBC 版本 2。有效值為 2 或 3。有關(guān)版本 2 和版本 3 的行為差別,請參見 ODBC SQLColumns 規(guī)范。
無
sp_columns 目錄存儲過程與 ODBC 中的 SQLColumns 等價。返回的結(jié)果按 TABLE_QUALIFIER、TABLE_OWNER 和 TABLE_NAME 排序。
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
TABLE_QUALIFIER | sysname | 表或視圖限定符的名稱。該字段可以為 NULL。 |
TABLE_OWNER | sysname | 表或視圖所有者的名稱。該字段始終返回值。 |
TABLE_NAME | sysname | 表或視圖的名稱。該字段始終返回值。 |
COLUMN_NAME | sysname | 所返回的 TABLE_NAME 每列的列名。該字段始終返回值。 |
DATA_TYPE | smallint | ODBC 數(shù)據(jù)類型的整型代碼。如果數(shù)據(jù)類型無法映射到 ODBC 類型,則為 NULL。本機數(shù)據(jù)類型名稱在 TYPE_NAME 列中返回。 |
TYPE_NAME | varchar(13) | 表示數(shù)據(jù)類型的字符串。基礎(chǔ) DBMS 提供此數(shù)據(jù)類型的名稱。 |
PRECISION | int | 有效數(shù)字個數(shù)。PRECISION 列的返回值以 10 為基數(shù)。 |
LENGTH | int | 數(shù)據(jù)的傳輸大小。1 |
SCALE | smallint | 小數(shù)點右邊的數(shù)字個數(shù)。 |
RADIX | smallint | 數(shù)字數(shù)據(jù)類型的基數(shù)。 |
NULLABLE | smallint | 指定是否可以為空。 1 = 可以為 NULL。 |
REMARKS | varchar(254) | 該字段總是返回 NULL。 |
COLUMN_DEF | nvarchar(4000) | 列的默認值。 |
SQL_DATA_TYPE | smallint | SQL 數(shù)據(jù)類型出現(xiàn)在描述符的 TYPE 字段時的值。該列與 DATA_TYPE 列相同,datetime 和 SQL-92 interval 數(shù)據(jù)類型除外。該列始終返回值。 |
SQL_DATETIME_SUB | smallint | datetime 及 SQL-92 interval 數(shù)據(jù)類型的子類型代碼。對于其它數(shù)據(jù)類型,該列返回 NULL。 |
CHAR_OCTET_LENGTH | int | 字符或整型數(shù)據(jù)類型的列的最大字節(jié)長度。對于所有其它數(shù)據(jù)類型,該列返回 NULL。 |
ORDINAL_POSITION | int | 列在表中的順序位置。表中的第一列為 1。該列始終返回值。 |
IS_NULLABLE | varchar(254) | 表中的列是否可以為空。根據(jù) ISO 規(guī)則決定是否可以為空。遵從 ISO SQL 標(biāo)準(zhǔn)的 DBMS 無法返回空字符串。 YES = 列可以包含 NULL。 如果不知道是否可以為空,該列則返回零長度字符串。 該列返回的值與 NULLABLE 列返回的值不同。 |
SS_DATA_TYPE | tinyint | SQL Server 數(shù)據(jù)類型,由開放式數(shù)據(jù)服務(wù)擴展存儲過程使用。有關(guān)更多信息,請參見數(shù)據(jù)類型。 |
執(zhí)行權(quán)限默認賦予 public 角色。
下面的示例返回指定表的列信息。
EXEC sp_columns @table_name = 'customers'
相關(guān)文章