2009-04-19 3 views
5

Я хочу получить эту информацию для таблицы mysql, используя C#Как получить подробную информацию о таблице mysql с помощью C#?

1) Полное определение столбцов, включая имя, размер и тип данных, а также дополнительную информацию, такую ​​как null/not null, unsigned, auto increament, значения по умолчанию, если данные тип перечисление, принятые значения

2) Все ограничения - первичный/иностранный/Каталог/Уникальные

3) Все индексы

я могу получить столбец связанным с основной информацией, используя «описывает table_name» запрос против база данных.

но как получить всю эту информацию?

С уважением, Anjan

ответ

6

просто бросить запросы к INFORMATION_SCHEMA ...

Например, чтобы получить определения столбцов:

SELECT TABLE_NAME 
     , COLUMN_NAME 
     , DATA_TYPE 
     , CHARACTER_MAXIMUM_LENGTH 
     , CHARACTER_OCTET_LENGTH 
     , NUMERIC_PRECISION 
     , NUMERIC_SCALE AS SCALE 
     , COLUMN_DEFAULT 
     , IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 

Взгляните на the information schema tables, чтобы получить дополнительную информацию.

Надеюсь, это поможет.

2

Вы можете использовать SqlDataReader.GetSchemaTable() метод и это ответ только для варианта 1), но это может быть сделано с помощью того же подключения к схеме, , если подключение к Струне базы данных по умолчанию (вариант схемы) установить. (Вам не нужно создавать отдельное подключение к схеме INFORMATION_SCHEMA).

Подробнее об этом методе можно найти here и пример использования here.

Чтобы получить информацию о вашей схеме или базах данных, используйте класс SqlClientMetaDataCollectionNames.

Более подробную информацию о классе можно найти here и пример того, как использовать его here

Смежные вопросы