Comment obtenir une liste des paramètres d'entrée pour une procédure stockée à l'aide de métadonnées dans SQL Server 2005? Je veux faire un SELECt dessus, puis parcourir les noms des variables.Recherche de métadonnées SQL Server 2005 pour obtenir les paramètres de procédure stockée
3
A
Répondre
5
Commencez ici
select * from information_schema.PARAMETERS
where SPECIFIC_NAME = 'YourStoredProcedureName'
order by ORDINAL_POSITION
look pour parameter_name data_type, parameter_mode
0
Kick ass !!!!! Je l'utilisais pour générer des paramètres ADO pour les corvées ASP classiques. Tu m'as sauvé des heures !! alter dbo.createParms PROCEDURE @procname VARCHAR (200)
SELECT 'dbCommand.Parameters.Append (dbCommand.CreateParameter("'+ parameter_name + '"' +
','
+ CASE WHEN data_type='char' THEN 'adChar'
WHEN data_type='varchar' THEN 'adVarChar'
WHEN data_type='int' THEN 'adInteger'
WHEN data_type='text' THEN 'adLongVarchar'
WHEN data_type='datetime' THEN 'adDBTimeStamp'
WHEN data_type='bit' THEN 'adBoolean'
WHEN data_type='uniqueidentifier' THEN 'adGuid'
end
+',adParamInput,'
+CASE WHEN data_type='int' THEN '0'
WHEN data_type='datetime' THEN '0'
WHEN data_type='varchar' THEN CONVERT(VARCHAR,character_maximum_length)
WHEN data_type='char' THEN CONVERT(VARCHAR,character_maximum_length)
WHEN data_type='text' THEN 'len('+replace(parameter_name,'@','')+')'
WHEN data_type='bit' THEN '0'
WHEN data_type='uniqueidentifier' THEN '0'
end
+ ','+replace(parameter_name,'@','') +'))' AS parm
from information_schema.PARAMETERS
where SPECIFIC_NAME = @procname
1
manière native SQL-Serveur:
select type_name(system_type_id) as type_name
, parameter_id
, name
, max_length
from sys.parameters
where object_id = object_id(N'{schema}.{name}');