Как генерировать SQL-скрипты из запроса - PullRequest
0 голосов
/ 06 ноября 2008

Кто-нибудь знает, как генерировать сценарии SQL из запроса?

Например,

  1. Скрипт некоторых таблиц.
  2. Выполнить пользовательское действие 1.
  3. Скрипт просмотров.
  4. Выполнить пользовательское действие 2.
  5. Etc.

Ответы [ 4 ]

1 голос
/ 06 ноября 2008

... но, пожалуйста, изучите внедрение SQL перед внедрением динамического SQL. Посмотрите на параметризованные запросы ...

1 голос
/ 06 ноября 2008

Звучит так, как будто вы хотите написать курсор для выполнения пользовательского SQL. Это распространено и легко сделать. Вам нужно указать несколько вещей, которые помогут нам более полно ответить на ваш вопрос:

  1. Какой тип SQL-сервера вы используете? (MSSQL, Oracle, MySQL)
  2. На каком языке вы пишете? (Java, C ++, PL / SQL, TSQL)

Вы можете либо написать код (Java / C ++) для генерации SQL из запроса, либо использовать курсор для перебора наборов записей (PL / SQL / TSQL). Вы можете использовать результаты, чтобы предоставить вам информацию, которая затем может быть выполнена в виде SQL через exec (в зависимости от языка).

0 голосов
/ 06 ноября 2008

Вы можете захотеть что-то вроде

select 'UPDATE '+table_name+ ' SET description=''(new!) ''+description WHERE description_date>''2008-11-01''' 
    from information_schema.tables where table_name like '%Description'

(этот запрос генерирует запросы, которые предшествуют значению description столбца с '(new!)' Для каждой недавней строки в каждой таблице, имя которой заканчивается в 'Description' в вымышленной базе данных).

Системное представление INFORMATION_SCHEMA.TABLES содержит данные обо всех таблицах базы данных, также имеются INFORMATION_SCHEMA.VIEWS , INFORMATIONS_CHEMA.COLUMNS и другие системные представления в INFORMATION_SCHEMA схема таблицы.

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

0 голосов
/ 06 ноября 2008

В Microsoft Sql Server лучший способ создания сценариев объектов базы данных - использовать SMO . Sql Management Objects - это c # api, но вы всегда можете выполнить сценарии t-sql из c #, используя SqlClient.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...