V SQL Server, sp_sproc_columns
systémová uložená procedura vám umožňuje získat informace o sloupcích pro danou uloženou proceduru nebo uživatelem definovanou funkci v aktuálním systému.
Je ekvivalentní SQLProcedureColumns v ODBC.
Syntaxe
Syntaxe vypadá takto:
sp_sproc_columns [[@procedure_name =] 'name'] [ , [@procedure_owner =] 'owner'] [ , [@procedure_qualifier =] 'qualifier'] [ , [@column_name =] 'column_name'] [ , [ @ODBCVer =] 'ODBCVer'] [ , [@fUsePattern =] 'fUsePattern']
Všechny argumenty jsou volitelné. Podrobné vysvětlení naleznete v dokumentaci společnosti Microsoft.
Příklad 1 – Nezadávejte žádné argumenty
Uloženou proceduru můžete spustit bez zadání jakýchkoli argumentů. Takhle:
EXEC sp_sproc_columns
Nebo dokonce takto:
sp_sproc_columns
To vrátí všechny uložené procedury a uživatelem definované funkce v aktuální databázi. Když to spustím proti ukázkové databázi WideWorldImporters, dostanu 9077 řádků. V dalším příkladu to zúžím jen na jeden.
Příklad 2 – Zadání všech argumentů
Takto to vypadá, když zahrnete všechny argumenty.
EXEC sp_sproc_columns @procedure_name ='GetCityUpdates', @procedure_owner ='Integrace', @procedure_qualifier ='WideWorldImporters', @column_name ='@RETURN_VALUE', @ODBCVer =2, @fUse =2, @fUseVýsledek (při použití vertikálního výstupu):
PROCEDURE_QUALIFIER | WideWorldImportersPROCEDURE_OWNER | IntegrationPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @RETURN_VALUECOLUMN_TYPE | 5DATA_TYPE | 4TYPE_NAME | intPRECISION | 10DÉLKA | 4MĚŘÍTKO | 0RADIX | 10NULLABLE | 0POZNÁMKY | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | 4SQL_DATETIME_SUB | NULLCHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 0IS_NULLABLE | NOSS_DATA_TYPE | 56V tomto případě vrátím informace o návratové hodnotě GetCityUpdates uložená procedura.
Příklad 3 – Zadejte pouze uloženou proceduru (nebo funkci)
Namísto zahrnutí všech argumentů můžete zahrnout pouze název uložené procedury. Pokud však nezadáte
@column_name
, tím se vrátí řádek pro každý sloupec.Svůj kód můžete také zkrátit vynecháním názvu argumentu (tj. pouze včetně jeho hodnoty).
EXEC sp_sproc_columns GetCityUpdates;Výsledek (při použití vertikálního výstupu):
-[ ZÁZNAM 1 ]-------------------------KVALIFIKACE POSTUPU | WideWorldImportersPROCEDURE_OWNER | IntegrationPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @RETURN_VALUECOLUMN_TYPE | 5DATA_TYPE | 4TYPE_NAME | intPRECISION | 10DÉLKA | 4MĚŘÍTKO | 0RADIX | 10NULLABLE | 0POZNÁMKY | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | 4SQL_DATETIME_SUB | NULLCHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 0IS_NULLABLE | NOSS_DATA_TYPE | 56-[ ZÁZNAM 2 ]-------------------------KVALIFIKACE POSTUPU | WideWorldImportersPROCEDURE_OWNER | IntegrationPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @PosledníCutoffCOLUMN_TYPE | 1DATA_TYPE | -9TYPE_NAME | datetime2PRECISION | 27DÉLKA | 54MĚŘÍTKO | 7RADIX | NULLLABLE | 1POZNÁMKY | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | -9SQL_DATETIME_SUB | 3CHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 1IS_NULLABLE | YESSS_DATA_TYPE | 0-[ ZÁZNAM 3 ]-------------------------KVALIFIKACE POSTUPU | WideWorldImportersPROCEDURE_OWNER | IntegrationPROCEDURE_NAME | GetCityUpdates;1COLUMN_NAME | @NewCutoffCOLUMN_TYPE | 1DATA_TYPE | -9TYPE_NAME | datetime2PRECISION | 27DÉLKA | 54MĚŘÍTKO | 7RADIX | NULLLABLE | 1POZNÁMKY | NULLCOLUMN_DEF | NULLSQL_DATA_TYPE | -9SQL_DATETIME_SUB | 3CHAR_OCTET_LENGTH | NULLORDINAL_POSITION | 2IS_NULLABLE | YESSS_DATA_TYPE | 0Příklad 4 – Další varianty
Můžete poskytnout libovolnou variantu argumentů, abyste vrátili pouze informace, které požadujete.
Můžete například vrátit všechny informace od konkrétního vlastníka procedury:
EXEC sp_sproc_columns @procedure_owner ='Integrace'Nebo můžete získat informace o všech návratových hodnotách ze všech procedur a uživatelsky definovaných funkcí:
EXEC sp_sproc_columns @column_name ='@RETURN_VALUE'Samozřejmě můžete vždy zahrnout kvalifikátor postupu, pokud si přejete. V SQL Server tento parametr představuje název databáze. V některých produktech představuje název serveru databázového prostředí tabulky.
EXEC sp_sproc_columns @column_name ='@RETURN_VALUE', @procedure_qualifier ='WideWorldImporters';Příklad 5 – Zástupné znaky
@fUsePattern
argument umožňuje určit, zda podtržítko (_
), procenta (%
) a závorka ([
]
) znaky jsou interpretovány jako zástupné znaky.Například spuštění následujícího kódu vrátí všechny procedury a uživatelem definované funkce, které začínají Get .
EXEC sp_sproc_columns @procedure_name ='Get%', @fUsePattern =1;Takže v mém případě to vrátilo procedury jako GetCityUpdates, GetCustomerUpdates, GetMovementUpdates atd.
Pokud zakážu zástupné znaky:
EXEC sp_sproc_columns @procedure_name ='Get%', @fUsePattern =0;Nemám žádné výsledky.