為當(dāng)前環(huán)境中的單個存儲過程或用戶定義函數(shù)返回列信息。
sp_sproc_columns [[@procedure_name =] 'name']
[,[@procedure_owner =] 'owner']
[,[@procedure_qualifier =] 'qualifier']
[,[@column_name =] 'column_name']
[,[@ODBCVer =] 'ODBCVer']
[@procedure_name =] 'name'
是用于返回目錄信息的過程名。name 的數(shù)據(jù)類型是 nvarchar(390),默認設(shè)置為 %,表示當(dāng)前數(shù)據(jù)庫中的所有表。不支持通配符模式匹配。
[@procedure_owner =] 'owner'
是過程所有者的名稱。owner 的數(shù)據(jù)類型為 nvarchar(384),默認設(shè)置為 NULL。不支持通配符模式匹配。如果未指定 owner,則應(yīng)用基礎(chǔ) DBMS 的默認過程可視性規(guī)則。
在 Microsoft® SQL Server™ 中,如果當(dāng)前用戶擁有帶指定名稱的過程,則返回有關(guān)該過程的信息。如果未指定 owner 且當(dāng)前用戶不擁有帶指定名稱的過程,則 sp_sproc_columns 查找由數(shù)據(jù)庫所有者擁有的帶指定名稱的過程。如果存在該過程,則返回有關(guān)該過程的列信息。
[@procedure_qualifier =] 'qualifier'
是過程限定符的名稱。qualifier 的數(shù)據(jù)類型是 sysname,默認設(shè)置為 NULL。多種 DBMS 產(chǎn)品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,該參數(shù)表示數(shù)據(jù)庫名。在某些產(chǎn)品中,該列表示表所在數(shù)據(jù)庫環(huán)境的服務(wù)器名。
[@column_name =] 'column_name'
是單列并且當(dāng)只需要目錄信息的一列時才使用。column_name 的數(shù)據(jù)類型是 nvarchar(384),默認設(shè)置為 NULL。如果省略 column_name,則返回所有列。指定的值可以包含使用基礎(chǔ) DBMS 通配符匹配模式的通配符。為獲得最大的互操作性,網(wǎng)關(guān)客戶端應(yīng)只采用 SQL-92 標準模式匹配(% 和 _ 通配符)。
[@ODBCVer =] 'ODBCVer'
是當(dāng)前所使用的 ODBC 版本。ODBCVer 的數(shù)據(jù)類型是 int,默認設(shè)置為 2,表示 ODBC 2.0 版。有關(guān) ODBC 2.0 版和 ODBC 3.0 版之間差別的更多信息,請參見 ODBC 3.0 版的 ODBC SQLProcedureColumns 規(guī)范。
無
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
PROCEDURE_QUALIFIER | sysname | 過程限定符名稱。該列可以為 NULL。 |
PROCEDURE_OWNER | sysname | 過程所有者名稱。該列始終返回值。 |
PROCEDURE_NAME | nvarchar(134) | 過程名。該列始終返回值。 |
COLUMN_NAME | sysname | 返回的 TABLE_NAME 中每列的列名。該列始終返回值。 |
COLUMN_TYPE | smallint | 該字段始終返回值: 0 = SQL_PARAM_TYPE_UNKNOWN |
DATA_TYPE | smallint | ODBC 數(shù)據(jù)類型的整型代碼。如果該數(shù)據(jù)類型不能映射到 SQL-92 類型,則該值為 NULL。本機數(shù)據(jù)類型名稱在 TYPE_NAME 列中返回。 |
TYPE_NAME | sysname | 數(shù)據(jù)類型的字符串表示法。這是由基礎(chǔ) DBMS 表示的數(shù)據(jù)類型名稱。 |
PRECISION | int | 有效數(shù)字個數(shù)。PRECISION 列的返回值以 10 為基數(shù)。 |
LENGTH | int | 數(shù)據(jù)的傳輸大小。 |
SCALE | smallint | 小數(shù)點右邊的數(shù)字個數(shù)。 |
RADIX | smallint | 是數(shù)字類型的基數(shù)。 |
NULLABLE | smallint | 指定為空性: 1 = 可創(chuàng)建允許空值的數(shù)據(jù)類型 |
REMARKS | varchar(254) | 對過程列的描述。SQL Server 不為該列返回值。 |
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 | 如果 SQL_DATA_TYPE 的值是 SQL_DATETIME 或 SQL_INTERVAL,則為 datetime SQL-92 interval 子代碼。對于 datetime 和 SQL-92 interval 以外的數(shù)據(jù)類型,該字段為 NULL。 |
CHAR_OCTET_LENGTH | int | character 或 binary 數(shù)據(jù)類型列的最大長度(以字節(jié)為單位)。對于所有其它數(shù)據(jù)類型,該列返回 NULL。 |
ORDINAL_POSITION | int | 列在表中的順序位置。表中的第一列為 1。該列始終返回值。 |
IS_NULLABLE | varchar(254) | 表中的列是否可以為空。根據(jù) ISO 規(guī)則決定是否可以為空。遵從 ISO SQL 標準的 DBMS 無法返回空字符串。 如果列可包含 NULL 則顯示 YES,如果列不能包含 NULL 則顯示 NO。 如果不知道是否可以為空,該列則返回零長度字符串。 該列返回的值與 NULLABLE 列返回的值不同。 |
SS_DATA_TYPE | tinyint | 由開放式數(shù)據(jù)服務(wù)擴展存儲過程使用的 SQL Server 數(shù)據(jù)類型。有關(guān)更多信息,請參見數(shù)據(jù)類型。 |
返回的列屬于存儲過程的參數(shù)或結(jié)果集。如果 sp_stored_procedures 為某個存儲過程返回的 SP_NUM_PARAMETERS 和 SP_NUM_RESULT_SETS 列為 1(不確定),則 sp_sproc_columns 不為該存儲過程返回行。在 SQL Server 中,只返回有關(guān)存儲過程的輸入和輸出參數(shù)的列信息。
在 ODBC 中,sp_sproc_columns 與 SQLProcedureColumns 等效。返回的結(jié)果按 PROCEDURE_QUALIFIER、PROCEDURE_OWNER、PROCEDURE_NAME 和參數(shù)在過程定義內(nèi)出現(xiàn)的次序排序。
執(zhí)行權(quán)限默認授予 public 角色。
相關(guān)文章