sp_sproc_columns (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲

傳回目前環境中單一預存程式或使用者定義函數的數據行資訊。

Transact-SQL 語法慣例

語法

sp_sproc_columns
    [ [ @procedure_name = ] N'procedure_name' ]
    [ , [ @procedure_owner = ] N'procedure_owner' ]
    [ , [ @procedure_qualifier = ] N'procedure_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

引數

[ @procedure_name = ] N'procedure_name'

用來傳回目錄資訊的程式名稱。 @procedure_name是 nvarchar(390),預設值%為 ,這表示目前資料庫中的所有數據表。 支援通配符模式比對。

[ @procedure_owner = ] N'procedure_owner'

程式擁有者的名稱。 @procedure_owner為 nvarchar(384),預設值為 NULL。 支援通配符模式比對。 如果未 指定@procedure_owner ,則會套用基礎資料庫管理系統 (DBMS) 的預設程序可見性規則。

如果目前用戶擁有具有指定名稱的程式,則會傳回該程式的相關信息。 如果未 指定@procedure_owner ,且目前使用者未擁有具有指定名稱的程式, sp_sproc_columns 請尋找具有資料庫擁有者所擁有指定名稱的程式。 如果程式存在,則會傳回其數據行的相關信息。

[ @procedure_qualifier = ] N'procedure_qualifier'

程式限定元的名稱。 @procedure_qualifier為 sysname,預設值為 NULL。 各種 DBMS 產品支援數據表的三部分命名(<qualifier>.<owner>.<name>)。 在 SQL Server 中,此參數代表資料庫名稱。 在某些產品中,它代表數據表資料庫環境的伺服器名稱。

[ @column_name = ] N'column_name'

單一資料行,當只需要一個目錄資訊資料行時,就會使用 。 @column_name為 nvarchar(384),預設值為 NULL。 如果 省略@column_name ,則會傳回所有數據行。 支援通配符模式比對。 為了達到最大互操作性,閘道客戶端應該只假設 ISO 標準模式比對 (% 和 _ 通配符)。

[ @ODBCVer = ] ODBCVer

正在使用的 ODBC 版本。 @ODBCVer為 int,預設值2為 ,表示 ODBC 2.0 版。 如需 ODBC 2.0 版與 ODBC 3.0 版之間差異的詳細資訊,請參閱 ODBC 3.0 版的 ODBC SQLProcedureColumns 規格。

[ @fUsePattern = ] fUsePattern

判斷底線 ()、百分比%_) 和方括弧 ([]) 字元是否解譯為通配符。 @fUsePattern為 bit,預設值為 1。 有效值為 0 (模式比對已關閉)和 1 (模式比對為開啟)。

傳回碼值

無。

結果集

資料行名稱 資料類型 描述
PROCEDURE_QUALIFIER sysname 程式限定元名稱。 這個資料列可以是 NULL
PROCEDURE_OWNER sysname 程式擁有者名稱。 這個資料行一律會傳回值。
PROCEDURE_NAME nvarchar(134) 程式名稱。 這個資料行一律會傳回值。
COLUMN_NAME sysname 所傳回之每個數據行的數據 TABLE_NAME 行名稱。 這個資料行一律會傳回值。
COLUMN_TYPE smallint 此欄位一律會傳回值:

0 = SQL_PARAM_TYPE_UNKNOWN
1 = SQL_PARAM_TYPE_INPUT
2 = SQL_PARAM_TYPE_OUTPUT
3 = SQL_RESULT_COL
4 = SQL_PARAM_OUTPUT
5 = SQL_RETURN_VALUE
DATA_TYPE smallint ODBC 數據類型的整數程序代碼。 如果此資料類型無法對應至 ISO 型態, 則值為 NULL。 原生數據類型名稱會在數據行中 TYPE_NAME 傳回。
TYPE_NAME sysname 數據類型的字串表示。 此值是基礎 DBMS 所呈現的數據類型名稱。
PRECISION int 有效位數。 數據行的 PRECISION 傳回值位於基底 10 中。
LENGTH int 資料的傳送大小。
SCALE smallint 小數點右邊的數位數。
RADIX smallint 數值類型的基底。
NULLABLE smallint 指定可為 Null:

1 = 可以建立允許 Null 值的數據類型。
0 = 不允許 Null 值。
REMARKS varchar(254) 程序數據行的描述。 SQL Server 不會傳回此數據行的值。
COLUMN_DEF nvarchar(4000) 數據行的預設值。
SQL_DATA_TYPE smallint SQL 數據類型的值,因為它出現在 TYPE 描述元的欄位中。 此數據行與數據DATA_TYPE行相同,但日期時間和 ISO 間隔數據類型除外。 這個資料行一律會傳回值。
SQL_DATETIME_SUB smallint 如果 值為 SQL_DATETIMESQL_DATA_TYPESQL_INTERVAL,則為 datetime ISO 間隔子碼。 對於 datetime 和 ISO 間隔以外的資料類型,此欄位為 NULL
CHAR_OCTET_LENGTH int 字元二進位數據類型數據行的位元組長度上限。 對於所有其他資料類型,這個資料行會傳 NULL回 。
ORDINAL_POSITION int 數據表中數據行的序數位置。 資料表中的第一個資料列是 1。 這個資料行一律會傳回值。
IS_NULLABLE varchar(254) 數據表中數據行的 Null 屬性。 遵循 ISO 規則來判斷可為 Null 性。 符合 ISO 標準的 DBMS 無法傳回空字串。

顯示 YES 資料列是否可以包含 Null,如果 NO 資料列不能包含 Null,則顯示 。

如果 Null 屬性未知,此資料行會傳回長度為零的字串。

針對此數據行傳回的值與針對 NULLABLE 數據行傳回的值不同。
SS_DATA_TYPE tinyint 擴充預存程式所使用的 SQL Server 數據類型。 如需詳細資訊,請參閱數據類型(Transact-SQL)。

備註

sp_sproc_columns 相當於 SQLProcedureColumns ODBC 中的 。 傳回的結果會依 PROCEDURE_QUALIFIERPROCEDURE_OWNERPROCEDURE_NAME和 參數出現在程式定義中的順序排序。

權限

SELECT需要架構的許可權。