2010-08-22 8 views

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}');