Получить определение хранимой процедуры - PullRequest
0 голосов
/ 25 мая 2019

Я пробовал различные варианты следующего запроса, но я не могу понять, что не могу получить определение хранимой процедуры из обычного ADO.NET

declare @procName varchar(100) = 'spGetMerchantSDR'
declare @Def varchar(max)

if OBJECT_ID('tempdb..#temp') is not null 
    drop table #temp

select @Def = m.[definition]
from sys.procedures p
inner join sys.sql_modules m on p.object_id = m.object_id
where p.name = @procName

select @Def as ProcText

Фрагмент программы

using (var con = new SqlConnection(neededString))
{
    con.Open();

   using (var cmd = new SqlCommand(CmdText, con))
    {
        cmd.CommandType = CommandType.Text;

        using (var rdr = cmd.ExecuteReader())
        {
            if (rdr.Read())
            {
                item.Definition = rdr["ProcText"].ToString();
            }
        }
    }
}

Когда я запускаю запрос в SSMS, я получаю ожидаемый результат.Если я изменю запрос, чтобы вернуть все из sys.sql_modules, я могу получить значения для таких вещей, как object_id, но каждый раз из C # определение возвращается в виде пустой строки.Когда я запускаю его в SSMS, я получаю ожидаемый результат.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...