Утилита для создания инструкций sql

#sql #oracle #sql-server-2005 #c#-4.0 #utility

#sql #Oracle #sql-server-2005 #c #-4.0 #утилита

Вопрос:

Это вопрос о генерации Sql, а не о sql, создающем sql или ORM.

Есть ли у них какие-либо инструменты для работы с базами данных, которые позволят создавать инструкции insert, например, для всех таблиц в конкретной схеме или пространстве имен. Допустим, пространство имен / схема в Sql Server 2008 является Aqua, и ваша утилита приходит и генерирует все возможные инструкции insert для этого пространства имен / схемы. И она работает на Oracle / MySQL / Postgres / db2 и т.д.

Спасибо. Боб

Комментарии:

1. Оператор INSERT, использующий синтаксис VALUES или INSERT ... SELECT , широко поддерживается. Пока вы не используете специфичный для поставщика синтаксис (не так много для INSERT), все будет в порядке.

2. @OMG Ponies, спасибо, я действительно ищу summat, который создаст sql, специфичный для поставщика, а не универсальный или эквивалент Ansi.

3. @scope_creep: что именно вы имеете в виду под «всеми возможными инструкциями insert»? «Все возможные» — это бесконечное число.

4. @a_horse_with_no_name, чувак, как у тебя может быть бесконечное количество инструкций insert, когда твоя схема имеет конечный размер.

5. Он имеет в виду поставщиков баз данных

Ответ №1:

ANSI SQL предоставляет стандартный набор представлений в схеме INFORMATION_SCHEMA для предоставления метаданных именно для этой цели.

Для создания простых шаблонов инструкций вставки таблиц вся информация, которая вам действительно нужна для создания инструкции insert для данной таблицы, заключается в выполнении этого запроса:

 select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_CATALOG = <my-db-name>
  and TABLE_SCHEMA  = <table-owner-schema>
  and TABLE_NAME    = <table-name>
order by ORDINAL_POSITION
  

в любой базе данных, которая поддерживает представления информационной схемы ANSI. Это даст вам по одной строке для каждого столбца в указанной таблице в ожидаемой последовательности.

Помимо вышесказанного, поскольку никакие два поставщика не поддерживают набор системных таблиц с метаданными, вы в значительной степени нуждаетесь в решении для разных баз данных. И, к сожалению, я не верю, что Oracle поддерживает представления информационной схемы ANSI.

Хотя вы могли бы взглянуть на семейство продуктов Red Gate: http://www.red-gate.com /

Комментарии:

1. Спасибо, Николас, это отражает то, что я нашел. Я думал, что Toad, возможно, смог бы это сделать. Раньше так и было, но я вижу, что теперь она принадлежит Quest и также зависит от поставщика. Я взгляну на утилиты sql red-gate, посмотрим, что у них есть.

2. Похоже, что не существует быстрой утилиты для создания максимально возможной эффективности вставки или массовой загрузки для данной архитектуры БД, аналогичной массовой загрузке хранилища данных, но здесь другой сценарий. Вместо этого есть множество утилит для генерации crud, полдюжины генераторов кода, таких как antrl, llbgen.