Получить параметры хранимой процедуры или C# или SQL?

Я надеялся найти простой способ получить список параметров параметры хранимых процедур. Если процедура имеет 3 параматерей, я хочу список как это:

param1
param2
param3

Было бы лучше смочь сделать это в Коде C#, но SQL будет достаточен также. Идеи?

50
задан gotqn 3 June 2015 в 04:36
поделиться

3 ответа

select * from information_schema.parameters
where specific_name='your_procedure_name'

Также обратитесь к этому сообщению, чтобы узнать больше о методах https://exploresql.com/2016/10/14/different-methods-to-get-parameter-list-of-a-stored-procedure/

74
ответ дан 7 November 2019 в 10:33
поделиться

Если вы знакомы с Enterprise Library, есть хороший метод, который позволяет DiscoverParameters () , используя Блок приложения доступа к данным .

DbCommand command = new DbCommand();
command.CommandText = @"myStoredProc";
command.CommandType = CommandType.StoredProcedure;

Database database = new SqlDatabase(myConnectionString);
database.DiscoverParameters(command);
// ...

Некоторые ссылки, которые могут помочь:

  1. Метод DiscoverParameters ;
  2. Пространство имен Microsoft.Practices.EnterpriseLibrary.Data .

Приведенные выше ссылки относятся к EntLib 3.1. В зависимости от версии .NET Framework, которую вы используете, вы также можете подумать о загрузке правильной версии EntLib, перейдя по по этой ссылке .

9
ответ дан 7 November 2019 в 10:33
поделиться

Для SQL Server это должно сработать.

private void ListParms()
{
    SqlConnection conn = new SqlConnection("my sql connection string");
    SqlCommand cmd = new SqlCommand("proc name", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    conn.Open();
    SqlCommandBuilder.DeriveParameters(cmd);
    foreach (SqlParameter p in cmd.Parameters)
    {
       Console.WriteLine(p.ParameterName);
    }
}
57
ответ дан 7 November 2019 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: