sp_sproc_columns (Transact-SQL)
傳回目前環境中單一預存程序或使用者自訂函數的資料行資訊。
語法
sp_sproc_columns [[@procedure_name = ] 'name']
[ , [@procedure_owner = ] 'owner']
[ , [@procedure_qualifier = ] 'qualifier']
[ , [@column_name = ] 'column_name']
[ , [@ODBCVer = ] 'ODBCVer']
[ , [@fUsePattern = ] 'fUsePattern']
引數
- [ @procedure_name = ] 'name'
這是用來傳回目錄資訊的程序名稱。name 是 nvarchar(390),預設值是 %,代表目前資料庫中的所有資料表。支援萬用字元的模式比對。
[ @procedure_owner =] 'owner'
這是程序擁有者的名稱。owner 是 nvarchar(384),預設值是 NULL。支援萬用字元的模式比對。如果未指定 owner,就會套用基礎 DBMS 的預設程序可見性規則。在 SQL Server 2005 中,如果目前使用者擁有含指定名稱的程序,就會傳回這個程序的相關資訊。如果未指定 owner,且目前使用者並未擁有含指定名稱的程序,sp_sproc_columns 會尋找資料庫擁有者所擁有的含指定名稱的程序。如果程序存在,就會傳回它的資料行的相關資訊。
- [ @procedure_qualifier =] 'qualifier'
這是程序限定詞的名稱。qualifier 是 sysname,預設值是 NULL。各種 DBMS 產品都支援三部份的資料表命名 (qualifier.owner.name)。在 SQL Server 中,這個參數代表資料庫名稱。在某些產品中,它代表資料表之資料庫環境的伺服器名稱。
- [ @column_name =] 'column_name'
這是個單一資料行,當只需要一個目錄資訊的資料行時,便使用這個單一資料行。column_name 是 nvarchar(384),預設值是 NULL。如果省略 column_name,便傳回所有資料行。支援萬用字元的模式比對。若要有最大交互操作能力,閘道用戶端應該只採用 SQL-92 標準模式比對 (% 和 _ 萬用字元)。
- [ @ODBCVer =] 'ODBCVer'
這是所用的 ODBC 版本。ODBCVer 是 int,預設值是 2,表示 ODBC 2.0 版。如需有關 ODBC 2.0 版和 ODBC 3.0 版之差異的詳細資訊,請參閱 ODBC 3.0 版的 ODBC SQLProcedureColumns 規格。
- [ @fUsePattern =] 'fUsePattern'
判斷是否將底線 (_)、百分比 (%) 和方括號 ([ ]) 字元解譯成萬用字元。有效值是 0 (關閉模式比對) 和 1 (開啟模式比對)。fUsePattern 是 bit,預設值是 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 資料類型的整數碼。如果這個資料類型無法對應至 SQL-92 類型,值就是 NULL。TYPE_NAME 資料行會傳回原生資料類型名稱。 |
TYPE_NAME |
sysname |
資料類型的字串表示法。這是基礎 DBMS 所提供的資料類型名稱。 |
PRECISION |
int |
有效位數的數目。PRECISION 資料行的傳回值為十進數。 |
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 欄位時的值。除了 datetime 和 SQL-92 interval 資料類型,這個資料行與 DATA_TYPE 資料行相同。這個資料行一律會傳回值。 |
SQL_DATETIME_SUB |
smallint |
datetime 或 SQL-92 interval 子代碼 (如果 SQL_DATA_TYPE 的值是 SQL_DATETIME 或 SQL_INTERVAL)。如果是 datetime 和 SQL-92 interval 以外的資料類型,這個欄位便是 NULL。 |
CHAR_OCTET_LENGTH |
int |
character 或 binary 資料類型資料行的最大長度 (以位元組為單位)。所有其他資料類型的這個資料行都會傳回 NULL。 |
ORDINAL_POSITION |
int |
資料行在資料表中的序數位置。資料表中的第一個資料行是 1。這個資料行一律會傳回值。 |
IS_NULLABLE |
varchar(254) |
資料表中資料行的 Null 屬性。遵照 ISO 規則來決定 Null 屬性。ISO SQL 標準 DBMS 無法傳回空字串。 如果資料行可以包括 NULLS,便顯示 YES,如果資料行不能包括 NULLS,便顯示 NO。 如果 Null 屬性不明,這個資料行會傳回長度為零的字串。 這個資料行的傳回值不同於 NULLABLE 資料行的傳回值。 |
SS_DATA_TYPE |
tinyint |
擴充預存程序所用的 SQL Server 資料類型。如需詳細資訊,請參閱<資料類型 (Transact-SQL)>。 |
備註
sp_sproc_columns 相當於 ODBC 中的 SQLProcedureColumns。傳回的結果依 PROCEDURE_QUALIFIER、PROCEDURE_OWNER、PROCEDURE_NAME,以及參數出現在程序定義中的順序。
權限
需要結構描述的 SELECT 權限。
請參閱
參考
目錄預存程序 (Transact-SQL)
系統預存程序 (Transact-SQL)