Получение Visual Studio для выполнения запросов SQL - PullRequest
1 голос
/ 05 февраля 2011

В офисе мы используем Visual Studio 2008 с Team Foundation Server в качестве нашей системы контроля версий.

Продукты, которые мы разрабатываем, в основном представляют собой сценарии Teradata SQL и хранимые процедуры, которые развертываются для запуска в базе данных Teradata организации с помощью автоматического планировщика.

У нас есть проблема:

Всякий раз, когда нам нужно исправить дефект или доставить изменение, мы извлекаем код, копируем его в другой инструмент для внесения наших изменений, а затем, когда мы довольны, мы возвращаем его обратно в TFS. Было бы замечательно сделать все в Visual Studio, но есть несколько решений, которые мы должны найти в первую очередь:

  1. Подсветка синтаксиса SQL
  2. Возможность выполнения сценариев SQL (будет Поставщик данных .NET от Teradata справится с работой?)
  3. Подстановка параметров

Конечно, подсветка синтаксиса и выполнение SQL могут быть выполнены каким-то образом, но я особенно обеспокоен тем, что подстановка параметров будет блокирующим устройством, поскольку я никогда не слышал, чтобы Visual Studio сделала что-то подобное.

Как мы используем подстановку параметров:

Для подстановки параметров нам нужна возможность использовать параметр для имен наших баз данных (или любой текст в этом отношении), чтобы при выполнении SQL Visual Studio в основном заменяла параметры внутри код для всего, что нам нужно для источника данных, к которому мы подключены, будь то среда разработки, тестирования или производства.

Например, у нас может быть запрос:

SELECT Client_Id, First_Name, Last_Name  
FROM <<Client Database>>.Client_Names

Когда мы выполняем это из Visual Studio, нам нужно, чтобы он выполнял подстановку параметров, поэтому за кулисами, вот что на самом деле отправляется на сервер базы данных:

SELECT Client_Id, First_Name, Last_Name  
FROM Client.Client_Names

Точно так же, если я делаю:

SELECT '<<Client Database>>'

Возвращается результат 'Client' при подключении к производственному серверу.

С другой стороны, если я подключусь к серверу разработки, он вернет 'DevA_Client'.

У инструмента, который мы сейчас используем для этого, просто есть параметры со значениями, определенными в CSV-файле (т.е. Prod-params.csv). Затем в инструменте есть настройка для связи Prod-params.csv с подключением источника данных производства. Пример того, как выглядит этот CSV-файл:

<<Client Database>>,Client
<<Order Database>>,Order
<<SomeHistoricDate>>,CAST('1997-05-28' AS DATE)

Мне бы хотелось, чтобы кто-то указывал мне направление, позволяющее выполнять все эти действия в Visual Studio.

1 Ответ

0 голосов
/ 05 февраля 2011

Все описываемые вами задачи можно выполнить, написав пакет надстроек Visual Studio, даже более высокий синтаксис, но это не тривиальная задача. В любом случае попробуйте начать отсюда: http://msdn.microsoft.com/en-us/library/bb166533.aspx. По сути, вы можете делать все, расширяя VS, поэтому замена параметров также должна быть легкой. Кроме того, если у вас есть работающий поставщик .NET для вашей целевой базы данных, в конечном итоге выполнение запроса должно быть более простой задачей.

...