requête SQL à partir des résultats usp
-
05-07-2019 - |
Question
Comment interroger les résultats d'une procédure stockée?
Voici mon exemple:
sp_columsn 'tblSomeTableName' --// Returns a recordset
select COLUMN_NAME from [sp_columns 'tblSomeTableName'] --// Raises an error saying "Invalid object name 'sp_columns 'tblSomeTableName''."
La solution
tant que vous connaissez la structure des résultats du processus stocké, vous pouvez créer une table (temp, variable, etc.) et exécuter le processus stocké dans la table.
CREATE TABLE #MyTestTable
(TABLE_QUALIFIER sysname,
TABLE_OWNER sysname,
TABLE_NAME sysname,
COLUMN_NAME sysname,
DATA_TYPE smallint,
TYPE_NAME sysname,
PRECISION int,
LENGTH int,
SCALE smallint,
RADIX smallint,
NULLABLE smallint,
REMARKS varchar(254),
COLUMN_DEF nvarchar(4000),
SQL_DATA_TYPE smallint,
SQL_DATETIME_SUB smallint,
CHAR_OCTET_LENGTH int,
ORDINAL_POSITION int,
IS_NULLABLE varchar(254),
SS_DATA_TYPE tinyint)
INSERT #MyTempTable
EXEC sp_columns 'tblSomeTableName'
SELECT COLUMN_NAME
FROM #MyTempTable
WHERE ...
Autres conseils
vous pouvez faire une requête de bouclage mais sachez qu'elle ouvre une autre connexion au même serveur
SELECT *
FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;',
'set fmtonly off exec master.dbo.sp_who')
Voir aussi ici: Mémoire de la procédure en cours / a>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow