В среде .NET я могу получить доступ к полной строке SQL, которая создается командой SqlCommand объект?
Примечание: полная строка SQL отображается при наведении указателя мыши на Intellisense в VisualStudio в режиме отладки.
Я готов использовать методы отражения, если необходимо. Я уверен, что кто-то здесь знает, как это сделать.
Обновление 1 :
Я вызываю хранимую процедуру, имеющую параметры с cmd.CommandType = CommandType.StoredProcedure
, и пытаюсь получить полный сгенерированный и запущенный SQL.
Интересно, может ли метод cmd. Prepare () оказаться полезным в этих обстоятельствах, если он может хранить полную строку в поле состояния или что-то в этом роде.
Обновление 2:
В свете ответов ниже (и ссылки на них), которые указывают, что полная строка SQL не генерируется внутри во время подготовки или выполнения, я немного поиграл с помощью .NET Reflector. Кажется, что даже классы внутреннего соединения передают объекты, а не сводят их к строкам, например:
internal abstract void AddPreparedCommand ( SqlCommand cmd );
Объявление типа: System.Data.SqlClient.SqlInternalConnection
Сборка: System.Data, Version = 2.0.0.0
В общем, спасибо всем за уровень детализации, который вы вложили, чтобы доказать, что можно сделать, и показать, что на самом деле происходит. Очень признателен. Мне нравятся подробные объяснения; они добавляют уверенности и веры в ответы.