The DDT does not seem to provide any way of creating triggers. One area where triggers are useful is in the enforcement of cardinality on a relationship. For example, a parent must have one and only one child, or perhaps between one and three children, but no more or less, etc.
No, the DDT does not provide a method for deploying triggers to SQL Server. If you use triggers extensively then maybe this isn't the choice for you.
Assuming that you use the DDT with your own apps, do you ignore triggers completely and implement things like cardinality in the business objects? For that matter, do you write any SQL at all (such as stored procedures for reports), or do you do it all in the .NET application?
Yes, we enforce cardinality through .NET code. Even when using FoxPro databases, we never deployed triggers. As for reports, our reports use our business objects, which allows us to retrieve the data through the business objects rather than requiring a stored procedure. If we ever require a stored procedure, it is written as a CLR stored procedure (within a managed DLL that is deployed to the server). There's no need for us to split up our business logic and decentralize it and require us to code it in T-SQL when we have .NET.
The help file for the DDT is a little bit light on at this stage. For example, there is nothing on deployment packages or how to create and use them. Similarly for the steps required to update an existing database with a new version, something which the DDT is touted to be able to do.
Yes, the DDT help is lacking information on creating deployment packages. When upgrading an existing database, the EXACT same process is used as when deploying a new database; if the database exists, it is upgraded, if it does not exist, it is created.
The import function is very limited. I pointed it at an existing SQL Server 2005 database and only got the tables. No foreign key constraints, no unique key constraints, no indexes, no descriptions, no triggers and no stored procedures.
The import function is not designed to be a complete solution. It is designed to allow you to bring forth legacy databases for a new application. Once the majority of the data is in the DDT, it is generally massaged before it is deployed to the server.
At the moment it is difficult to see what I would use the DDT for. The fact that it lacks any kind of diagram tools is also a big minus. I currently use CASE Studio 2 for designing my database schema, and while it may rely on scripts, it works and is very flexible, including ER diagrams, HTML reports, generation of RI triggers, and support for a multitude of databases.
The DDT is designed as a database Deployment tool, not a database management tool. It is designed to deploy a structure to SQL Server without requiring the developer to create multiple scripts that must be executed on the server. If you use diagramming exclusively, then this is not the tool for you.
The DDT has potential, but I think it is currently way too underdeveloped. Maybe you've got big plans for it that we will see in the future?
There are no plans for the DDT to support diagramming, reports, or RI triggers. Regardless, thank you for your input and review.