Чтение имен столбцов таблицы на SQL сервере, проблема с INFORMATION_SCHEMA.COLUMNS - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь прочитать имена столбцов таблицы на SQL сервере (позже будут использоваться в C#). Решение вроде:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = N'my_table_name'

Вчера все работало нормально! но на данный момент я не могу получить правильный результат. Потому что, когда я запускаю весь запрос, он возвращает пустую таблицу (заголовки столбцов без значения), а когда я запускаю это

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS

То, что я получаю, не содержит фактических TABLE_NAME, которые я ищу . В результате я получаю таблицу (результат запроса) с этими именами в столбце TABLE_NAME (вместо настоящих имен таблиц):

  • spt_fallback_db
  • spt_fallback_dev
  • spt_fallback_usg
  • spt_monitor spt_values ​​

Значения для столбца результатов TABLE_CATALOG всегда являются «master», а для столбца TABLE_SCHEMA - «dbo». Результат такой:

TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME .....
-------------------------------------------
    master    |     dbo      | spt_monitor
-------------------------------------------
    master    |     dbo      | spt_values
                   .....  

Я думаю, вместо того, чтобы читать список таблиц, он читает некоторые другие root вещи.

1 Ответ

1 голос
/ 16 июня 2020

, вы должны выполнить такой запрос.

USE <YourDBName>;
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...