none
Программное получение структуры БД. RRS feed

  • Вопрос

  • Всем добрый вечер!

     

    Возникла такая необходимость: 

    Нужно в программе получить структуру всей БД. А именно сюда входят все таблицы и связи.

    Например, в Oracle структуру таблицы можно получить SQL-запросом: Describe <имя таблицы>. Нужно сделать то же самое, только для SQL Server'а и запрос осуществить для всей БД не зная какие в ней находятся таблицы. Это нужно сделать для того чтобы пользователь выбрал необходимые ему таблицы и после чего, в дальнейшем, программа смогла формировать запросы в эту БД к выбранным таблицам.

    И еще такой вопрос: возможно ли это сделать для любой СУБД?

     

    Буду благодарен за любую полезную информацию!

    Всем заранее спасибо!


    E-mail: Svatoslav.Pankratov@gmail.com
    21 ноября 2010 г. 18:35

Ответы

  • use <user_db_name,,user_db_name>
    go
    
    declare @table_type sysname = 'BASE TABLE'
    select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE = @table_type
    
    declare @table_name sysname = <table_name,,table_name>
    select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @table_name
    
    select * from sys.sql_dependencies
    
    И еще такой вопрос: возможно ли это сделать для любой СУБД?

    Views INFORMATION_SCHEMA поддерживаются многими СУБД


    Gruß Yury

    • Помечено в качестве ответа Svyatoslav Pankratov 21 ноября 2010 г. 19:46
    21 ноября 2010 г. 19:19

Все ответы