SQL EDT (Enterprise Data Toolkit) is a collection of very powerful, easy to use, and feature rich tools designed to make working with Databases easy for Enterprise Application Developers. It was created by a team of programmers who have been working on Enterprise-LOB applications for years. The idea was born when we faced many of the issues that we are sure developers on a variety of projects, especially larger ones with dozens of team members face. Let us list some of these scenarios for you:
1) You have a large modular project, and you follow a "SCRUM/RUP/AGILE" development methodology. This is good for management to know. But what does this mean for you? This means, more than likely, each iteration, you are getting a new database build. But wait - how do you know what changes does the database have? How do you populate the database with reference/lookup data? How do you ensure that the new database has all the correct initialization data? HOW do you do all of this and still, maintain your sanity??
2) You are a developer, or a Quality Assurance Analyst. You have a screen in front of you, that shows you details about a business object (Customer Info, for example) and a list of some associated objects (Customer outstanding Invoices, for example). You want to verify that the screen is showing the correct data. You fire up your trusted SQL Editor, and start typing away. For smaller databases, this will be fine, but for enterprise databases where each business object means a half a dozen table joins, this will be time consuming and error prone, and you are copying and pasting column names, ids, and what not. Pretty soon, you are looking at a mile long SQL statement hunting for that missing comma!!
3) You are a new hire on the team and they expect you to "Hit the ground running". You are looking at a database with hundreds or even thousands of tables, and you just feel like a deer in caught in the headlights. You just stumble through the relationships - guessing and second guessing what is what and relates to what.
4) You are working on a module in the project that reads from a set of tables that are supposed to be populated by another team. The only problem is, the other team is still working through their screens, and both of you have the same deadline. You curse upper management, squeeze your stress releif ball, and eventually come to the grim realization that you're going to have to write a hundred insert statements to mock that data.
5) You're in a mutiple deployment scenario, with many Production, Staging, QA and Development environments. Some of us actually have multiples of each. Bright and Sunny April morning, you open up your email and you see a bug report. "When I click button XXX on screen XXX, i see the following error .... ". You replicate, it works fine on your local. It works fine on DEV. BUT, it fails on QA. The user dutifully marks the issue as "CODE RED HIGH PRIORITY CRITICAL SEVERITY" issue, because, oh well, they like those words. (Or maybe it prevents them from further testing). Half a day of searching through the logs, another deployment, and yet another deployment later, you realize that the issue was missing reference data.
6) Similar to the above, you are in a multi deployment scenario. Your DBA asks you for all the changes that have been applied to DEV, so the same can be applied to QA/STAGING/PROD/ whatever. You go through your email, or the change log, or, may be you have all these memorized (good for you). You put together a script - DBA responds - Script failed. ERROR (some obscure number). Back to Google. Repeat Loop.
If any of these sound familiar, SQLEDT (SQL Enterprise Data Toolkit) will be a breath of fresh air. Infact, once you get used to it, you'll never want to write a line of SQL without it again.
For 1) SQL EDT has a built in SQL Schema Compare tool. It will show you, in a very intuitive manner, all the differences between databases, new/removed/changed columns, tables, keys, indexes, views, stored procedures. It also has a built in Test Data Generator. You can save Test Data Generation Scripts, export and import them between two versions of the same database. IF none of the affected tables have changed, you can run the script as is. Otherwise, the Test Data Generator Diagram Desginer will import the part of the script that has not changed for you to complete and run it. We also have a SQL Data Compare tool. You can select a list of tables, and save this list, so everytime you get a new database, you can compare to ensure that the reference data exists and is consistent.
For 2) We have hyperlink based Database Navigation, and a powerful Quick Filter/Advanced Filter UI that will quickly get to your destination data. We also have a Quick/Advanced Find that lets you quickly jump to your table. You open up a table, punch in the ID (or any column) and a simple right click will let you swim through the database like a fish in the sea. You can save the path you took to get from table A to B, and this will further reduce your click count. And for those of you who really like SQL, we have SQL Intellisense like you have never seen before. Just start typing "select " and it will present you with a filter-as-you-type list of all columns. As soon as you hit your column, it will bring in the table. AS soon as you type the word "inner" or "join" it will bring in all related tables. As soon as you type a comma, it will bring in all columns possible. Disclaimer: The tool does not quite read your mind (yet), but it will still do a pretty decent job at guessing what you wish to type. Try it out yourself - you'll never think about writing SQL the same way again! The amount of time just this feature will save you can offset the cost of SQL EDT for you.
For 3) Open up a table, click on the Visual SQL designer button, and instantly, you have all 1-1, 1-n and n-1 relationships in front of you. One more click and you have the tables an additional level deep. Check a few columns and you have a SQL statement that would have taken an eternity to write at your fingertips.
For 4) Again, the Test Data Generator to your rescue. Our TDG is different. We know and understand, that your business objects are more than likely a multi level class hierarchy. Your Customer Object inherits your Organization Object, which inherits your Entity Object, which is the root of all objects. We know that this will take an insert into half a dozen tables. The UI and the engine of our tool is designed to handle this. Try it out for yourself!
For 5) The SQL Data Compare Tool will be invaluable in this scenario. As a first line of defense against errors caused by missing/inconsistent reference data, you could run the data compare tool, which in a matter of seconds, will point you to what, if any data is missing. We also have a tool that lets you right click on a row, and create an insert statement for that row.
For 6) The SQL Schema Compare tool has the ability to generate a Synchronization Script, which will save you an immense abount of time and frustration in this scenario. The DDL Script Generation tool is also very handy.
To summarize - SQLEDT really is a swiss army knife for the Enterprise Application Developer. Once you start working with it, you'll never want to shut it down. Try it out, and see for yourself!