В офисе мы используем Visual Studio 2008 с Team Foundation Server в качестве нашей системы контроля версий.
Продукты, которые мы разрабатываем, в основном представляют собой сценарии Teradata SQL и хранимые процедуры, которые развертываются для запуска в базе данных Teradata организации с помощью автоматического планировщика.
У нас есть проблема:
Всякий раз, когда нам нужно исправить дефект или доставить изменение, мы извлекаем код, копируем его в другой инструмент для внесения наших изменений, а затем, когда мы довольны, мы возвращаем его обратно в TFS. Было бы замечательно сделать все в Visual Studio, но есть несколько решений, которые мы должны найти в первую очередь:
- Подсветка синтаксиса SQL
- Возможность выполнения сценариев SQL (будет Поставщик данных .NET от Teradata справится с работой?)
- Подстановка параметров
Конечно, подсветка синтаксиса и выполнение 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.