SQLProcedureColumns
SQLProcedureColumns 會傳回一個資料列,報告所有 SQL Server 預存程序的傳回值屬性。
不論 CatalogName、SchemaName、ProcName 或 ColumnName 參數的值是否存在,SQLProcedureColumns 都會傳回 SQL_SUCCESS。在這些參數中使用無效值時,SQLFetch 會傳回 SQL_NO_DATA。
SQLProcedureColumns 可以在靜態伺服器資料指標上執行。嘗試在可更新的 (動態或索引鍵集) 資料指標上執行 SQLProcedureColumns 時,將會傳回 SQL_SUCCESS_WITH_INFO,表示資料指標類型已變更。
下表列出結果集所傳回的資料行,以及如何透過 SQL Server Native Client ODBC 驅動程式擴充這些資料行來處理 udt 和 xml 資料類型:
資料行名稱 |
描述 |
---|---|
SS_UDT_CATALOG_NAME |
傳回包含 UDT (使用者定義型別) 之目錄的名稱。 |
SS_UDT_SCHEMA_NAME |
傳回包含 UDT 之結構描述的名稱。 |
SS_UDT_ASSEMBLY_TYPE_NAME |
傳回 UDT 的組件完整名稱。 |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME |
傳回定義 XML 結構描述集合名稱所在目錄的名稱。如果找不到目錄名稱,則此變數包含空字串。 |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME |
傳回定義 XML 結構描述集合名稱所在結構描述的名稱。如果找不到結構描述名稱,則此變數包含空字串。 |
SS_XML_SCHEMACOLLECTION_NAME |
傳回 XML 結構描述集合的名稱。如果找不到名稱,則此變數包含空字串。 |
SQLProcedureColumns 和資料表値參數
SQLProcedureColumns 會以類似 CLR 使用者定義型別的方式處理資料表值參數。在針對資料表值參數傳回的資料列中,資料行包含下列值:
資料行名稱 |
描述/值 |
---|---|
DATA_TYPE |
SQL_SS_TABLE |
TYPE_NAME |
資料表值參數的資料表類型名稱。 |
COLUMN_SIZE |
NULL |
BUFFER_LENGTH |
0 |
DECIMAL_DIGITS |
資料表值參數中,資料行的計數。 |
NUM_PREC_RADIX |
NULL |
NULLABLE |
SQL_NULLABLE |
REMARKS |
NULL |
COLUMN_DEF |
NULL。資料表類型可能沒有預設值。 |
SQL_DATA_TYPE |
SQL_SS_TABLE |
SQL_DATEIME_SUB |
NULL |
CHAR_OCTET_LENGTH |
NULL |
IS_NULLABLE |
"YES" |
SS_TYPE_CATALOG_NAME |
傳回包含資料表或 CLR 使用者定義型別之目錄的名稱。 |
SS_TYPE_SCHEMA_NAME |
傳回包含資料表或 CLR 使用者定義型別之結構描述的名稱。 |
SS_TYPE_CATALOG_NAME 和 SS_TYPE_SCHEMA_NAME 資料行會在 SQL Server 2008 中導入,以便針對資料表值參數個別傳回目錄與結構描述。這些資料行會針對資料表值參數及 CLR 使用者定義型別參數擴展 (CLR 使用者定義型別參數的現有結構描述與目錄不會受到這個額外功能的影響。系統也會擴展它們來維護回溯相容性)。
依照 ODBC 規格規定,SS_TYPE_CATALOG_NAME 和 SS_TYPE_SCHEMA_NAME 會出現在舊版 SQL Server 中所加入的所有驅動程式專用資料行之前,以及 ODBC 本身所託管的所有資料行之後。
如需有關資料表值參數的詳細資訊,請參閱<資料表值參數 (ODBC)>。
SQLProcedureColumns 對大型 CLR UDT 的支援
SQLProcedureColumns 支援大型 CLR 使用者定義型別 (UDT)。如需詳細資訊,請參閱<大型 CLR 使用者定義型別 (ODBC)>。