Как получить имя таблицы столбца из SqlDataReader

У меня есть запрос SQL, который я получаю из файла конфигурации, этот запрос обычно содержит 3-6 объединений.

Мне нужно найти во время выполнения на основе набора результатов, представленного SqlDataReader, чтобы найти имя таблицы для каждого столбца.

Вот некоторые вещи, которые не работают:

SqlDataReader.GetName возвращает имя столбца, но не имя таблицы.SqlDataReader.GetSchemaTable возвращает таблицу данных с информацией о столбце, но все имена таблиц являются нулевыми.Запросы information_schema не помогают, потому что мне нужны данные о результатах текущего запроса (и имена столбцов не уникальны - в разных таблицах есть столбцы с одинаковыми именами).

Я использую .net 3.5SP1 / C # / SQL Server 2008 в консольном приложении.

РЕДАКТИРОВАТЬ: Я знаю, что это возможно не во всех случаях, поскольку «столбец» может быть объединен из нескольких таблиц, функции или даже константного выражения - я ищу что-то, что работает в простом случае.

РЕДАКТИРОВАТЬ 2: Выяснили, почему это не сработало - вы можете использовать SqlDataReader.GetSchemaTable, чтобы получить информацию о таблице, но вам нужно установить CommandBehavior на KeyInfo, вы делаете это в вызове ExecuteReader:

reader = cmd.ExecuteReader(CommandBehavior.KeyInfo);

Ответы на вопрос(6)

Ваш ответ на вопрос