Visual Studio Team System 2008 Database Edition GDR – RTM


Finally the moment is there, the final version of the Visual Studio Team System 2008 Database Edition GDR has been released to the web.

Although the name "GDR", which stands for "General Redistribution Release", implies otherwise, this really is a complete new release, based on a new architecture. We have taken the architectural changes from the Rosario project (Visual Studio Team System 2010) and rolled them forward in time. Rolling forward these changes help us align the GDR release with the upcoming Visual Studio Team System 2010 release and provide numerous new features and extensibility points in this release. If you would compare the GDR release with the "Visual Studio 2005 Team Edition for Database Professionals" or "Visual Studio Team System 2008 Database Edition" you will agree this is a completely new product!

The key architectural changes

  • Model based architecture – Everything underneath the covers is based on a true model representation of the SQL Server schema. This facilitates a true offline declarative database development system where the source code defines the shapes of the schema objects.
  • Models are implemented by Database Schema Providers, DSP’s for short. – The introduction of a provider model enables multiple things at once. First of all the decoupling of release vehicles. For example when SQL Server will release a new version or adds new functionality in a service pack, like they did in SQL Server 2005 SP2 when adding "vardecimal" support, we can simply update an existing provider or provide a new one in case of a new SQL Server release. Overtime we will go to a model where the SQL Server providers will be an integral part of the SQL Server release. The provider model is also a key extensibility point, allowing 3rd parties to extend database project ecosystem and add support for other database platforms in Visual Studio Team System 2010.
  • Tool extensibility – In this release external tool writers have full access to the T-SQL parsers (for SQL Server 2000, 2005 and 2008), the SQL Script DOM and the schema model (when inside Visual Studio). This adds on top of the ability to write extend the tools inside the platform. You can extend T-SQL refactoring by writing your own refactoring types (operations) and refactoring targets; add T-SQL Static Code Analysis rules, data generators, data distributions and test conditions. Database Projects (.dbproj) now provide a truly extensible declarative database development platform.
  • Separation of BUILD and DEPLOY. – The separation of build & deploy makes it possible to deploy the output of your database project to many different targets and different points in time. Build now produces a single artifact file hat describes the schema inside your database, called a .DBSCHEMA file. This file is used by the deployment engine to deploy your schema.
  • Standalone Deployment Engine. – The inclusion of a standalone and redistributable deployment engine makes it possible to deploy the output of your database projects (.DBSCHEMA files) to a target database without the need of having Visual Studio Team System Database Edition installed. This enables key scenarios like the inclusion of database schema deployment as part of your application installation.

All these architectural changes enable many new usage scenarios and interesting new features. So lets walk through the list of new features and major changes.

Feature list

  • Project System
    • Full support for SQL Server 2000, SQL Server 2005 and SQL Server 2008 support.
      • All database objects are now modeled, therefore they are compared and part of deployment. The side-effect of this is that there are no more objects that need to be stored in pre- and post-deployment scripts.
    • Server vs. Database projects
      • This change allows you to model the different behavior of shared and server level objects inside SQL Server vs. user database level objects. 
    • Partial projects
      • Partial project allow you to share implementation between projects, with a single definition of the code
    • Composite projects
      • Composite projects extend database references, allowing you to add objects from other project to the name database schema namespace. So you can compose your database from other projects and/or DBSCHEMA file references
    • Database references using literals, in addition to SQLCMD token support
      • The addition of literal support facilitates that you do not have to change your code of 3-part names, when do do not require the flexibility of name independent deployment
    • Reference support for XML Schema Collections to include .XSD files
      • Enables single sourcing of XML Schema Collections from an .XSD file which itself can be used by other developers or tools.
    • Reference support of SQL-CLR projects and / or SQL-CLR assemblies
      • Enables the inclusion of a SQL-CLR project or a binary, to represent a SQL-CLR assembly. Like XSD references, the goal is single sourcing of artifacts inside the development environment
    • Import Schema and Import Script is now available through DTE
      • This allows the creation of macros or programmatic add-in to drive these common tasks.
    • No more "DesignDB"
      • The change to a fully model driven implementation makes the need for a local SQL Server database instance obsolete. Having a sandbox for your development environment is still am advised practice though, so you can test the changes independently and in an isolated environment.
  • Build
    • Build validates the consistency of the schema model and produces all the files that you need to deploy the database
  • Deploy
    • Deploy takes the output from the build stage and deploys this information based on the settings supplied
    • Deployment settings are now isolated in to the .SQLDEPLOYMENT file, which allows you to standardize and re-use the deployment settings
    • Most of the "Schema Compare" comparison options are now available as the deployment options, to increase the symmetry between the two
    • VSDBCMD.EXE, is a command line deployment tool, which enables the standalone deployment of Database Project
  • Schema Compare:
    • Compares any combination of live databases, Database Projects and .DBSCHEMA files
    • Session level option support, which can be persisted and re-used
    • Object type level filtering allow you to exclude object types from the comparison
    • You can now quickly navigate back and forward between difference via the toolbar and optionally configurable keyboard shortcuts
    • Substitution of SQLCMD variables, allows for the comparison of projects that rely on the use of SQLCMD variables
    • Schema Compare can now be executed through DTE
  • Data Compare
  • Refactoring:
    • New refactoring types: Expand Wildcards and Fully-qualify Names (in addition to Rename, Move Schema and 3/4 part name refactoring)
    • The patented "preservation of intend" functionality makes is possible that the Deployment Engine will deploy renames and move schema operations as actual renames and move schema operations, instead of a DROP / ADD operation.
    • Extensibility enables the creation of your own refactoring types (operations) and refactoring targets.
  • Database Unit Testing
    • Added support for SQL Server 2008
  • Data Generation
    • BulkCopy based inserts in addition to the existing INSERT data sync
    • Sequential Databound Generator is now included in the product
  • T-SQL Static Code Analysis
    • Execute analysis using MS Build and/or as part of the VS IDE build process
    • Including the ability to write you own T-SQL Static Code Analysis rules
  • Extensibility
    • Public full fidelity .NET based T-SQL parser for SQL Server 2000, 2005 and 2008.
    • Public .NET based SQL Script DOM, for programmatically generation of SQL code (equivalent to the Code DOM in .NET)
    • Access to the Schema Model from within Visual Studio, this enables for example ability to write code generators based on the schema model.
    • Feature extensibility:
      • T-SQL Static Code Analysis rules
      • Refactoring types, these are the refactoring operations
      • Refactoring targets, these are the sources that you want to update as part of a refactoring operation
      • Data Generators
      • Data Distributions
      • Test Conditions

As you can see the GDR release is chockfull of new and improved functionality!  And the good things is you can get it now.

Installation

Uninstall old GDR versions

If you have a previous version of the GDR installed, you will have to uninstall these first. You can do this via Add/Remove Programs or from the command line using:

  • msiexec /X {DDF197C6-4507-3A19-A4B5-0E17CC931370}

Prerequisites

Before you start downloading and installing please check if the following pre-requisites are present on your machine!

Installation

You can download the Visual Studio Team System 2008 Database Edition GDR from the following location:

Upgrading projects

If you have existing Database Projects look at the following matrix:

Version Project upgrade supported
Visual Studio 2005 Team Edition for Database Professionals Yes
Visual Studio 2005 Team Edition for Database Professionals GDR Yes
Visual Studio Team System 2008 Database Edition Yes
Visual Studio Team System 2008 Database Edition SP1 Yes
Visual Studio Team System 2008 Database Edition GDR CTP 17 and before No *
Visual Studio Team System 2008 Database Edition GDR RC0 Yes

* If you need to upgrade GDR CTP earlier projects you can use the Import Script add-in.

Before you upgrade your project, make sure to create a backup of your project!.

During the upgrade process will update your project file (.DBPROJ) and will try to move schema objects that were earlier defined in the the pre- and post deployment scripts in to the project.

Questions

Like always we are looking forward to your feedback which you can post to our MSDN forum and please file bugs and improvement requests using our Microsoft Connect site.

On behalf of the whole "DataDude" team we want to thank you for your support and wish you a happy Thanksgiving!
-GertD

Comments (43)

  1. Team System 2008 Database Edition dispo en RTM

  2. CodeClimber says:

    Visual Studio Team System 2008 Database Edition GDR goes RTM

  3. James World says:

    Gert – you and the team ROCK! Awesome release!

    James World

  4. kwyk says:

    Gert, you just made me happy that I’m going to work today 🙂 Thanks for all the help from you and the team getting my issues sorted. Now it’s time to clear your desk and enjoy the holiday!

    Best Regards,

    Mike Stankavich

    Intel Corporation

  5. Al momento è disponibile solo in Inglese, le versioni localizzate (anche in Italiano) usciranno a breve.

  6. The long awaited update for VSTS 2008 Database professional is now available. You may have been following

  7. Woohoo! It’s out! Visual Studio 2008 Database Edition (aka DBPro or Data Dude) GDR has been released,…

  8. Woohoo! It’s out! Visual Studio 2008 Database Edition (aka DBPro or Data Dude) GDR has been released

  9. Nous venons d’annoncer la disponibilité de la version 2008 GDR de VSTS Database Edition. Des nombreuses

  10. At last, Visual Studio 2008 for DB Pros is fully in sync with the SQL Server 2008 release. The new "GDR"

  11. Visual Studio Team System 2008 Database Edition GDR – RTM

  12. Dmitriy Sosunov says:

    Dear Developers, how-to deploy project with change tracking enabled on table?

  13. brennang says:

    Great stuff, I have upgraded and built and deployed already — just need to know how the permissions xml property file works

  14. There have been two new announcements for Team System fans in the past 24 hours. First, Gert has announced…

  15. 遠い母国では感謝祭でお休みに入っている頃ですが、こんな時こそ日本で皆さんと対談したりユーザーさん達と触れ合う機会を設けさせてもらえることに、感謝です。 日々の悩みや苦しみは当然ありますし、製品について色々と突っ込まれて答えれない時の凹みもありますが、感謝できることが常に増してあるので、支えになっています。

  16. Nuevo Release de DB: "Mejor, robusto y rápido.", el post original lo pueden ver aquí .

  17. Nuevo Release de DB: "Mejor, robusto y rápido.", el post original lo pueden ver aquí .

  18. PockyMaster says:

    I like the new GDR!

    But I’ve got some issues with the conversion to the new project format. The PrimaryFileName.sqlfile.sql and PrimaryLogFilename.sqlfile.sql are not added to source control automatically during the upgrade. All other files are. Is that a bug?

  19. ericmatz says:

    Congrats on getting this over the goal line!  Perfect timing, as I’ll be giving a demo to a customer this afternoon.

    Any ETA on when you’ll be releasing the dbproj.com site you eluded to in your PDC session?  I’m anxious to get hold of those custom analysis rules.

  20. In case you missed it, Gert sent word last week that the newest version of the Visual Studio Database

  21. After a lot of CTP versions the Visual Studio Team System 2008 Database Edition GDR RTM version has been

  22. Does this effect those of us using Team Suite?

  23. Geek Noise says:

    Visual Studio Team System 2008 Database Edition GDR – RTM

  24. Visual Studio Team System 2008 Database Edition GDR – RTM – очень полезная новость, для тех кто разрабатывает…

  25. Echipa "Data Dude" (sau altfel spus echipa de Visual Studio Team Edition for Database Professionals)

  26. vaccac says:

    GDR = Gert Drapers Rocks!!

    Thank you and your team. Keep up the awesome work

  27. Visual Studio Team System 2008 Database Edition GDR 日本語版が本日正式にリリースされましたのでお知らせいたします。 ダウンロードサイト : http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=ja

  28. This blog just summarises some of the issues I picked up … some of which ‘again’ … during discussions

  29. bpeikes says:

    How do you figure out if you have VS 2008 RTM or beta?

  30. The SqlServer 2008 support in the upgrade is awesome!  thanks.

  31. [ Nacsa Sándor , 2009. február 8.] Ez a Team System változat az adatbázis változások kezeléséhez és teszteléséhez

  32. Con Diego necesitando generar valores aleatorios en una base de datos, en otra oportunidad estábamos

  33. Nuevo Release de DB: "Mejor, robusto y rápido.", el post original lo pueden ver aquí .

  34. patelkhyati82 says:

    I have several SPs and Tabular Functions that reference each other and I get this error on a lot of them.

    Function: %FullyQualifiedFunctionName% contains an unresolved reference to an object.  Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [dbo].[%Table1%].[dbo]::[%Function1%], [dbo].[%Table2%].[dbo]::[%Function1%], [dbo].[%Table3%].[dbo]::[%Function1%],[dbo].[%Table4%].[dbo]::[%Function1%] or [dbo].[%Function1%]

    Could you please help me why i am getting such errors?

    thanks,

    Khyati

  35. premagination says:

    I can’t seem to find any mention of the documentation scenarios supported by the GDR? I’ve found a couple of old MSDN posts indicating that documentation integration was under development, was it ever released?

    Thanks!

    Drew

  36. Oscar Bautista says:

    Hello.  Will Visual Studio’s Data Compare allow me to compare Data on two different SQL Servers that have two different Database schemas also?  I have redesigned my database and now need to move over data from the old to the new database.  They now have different schemas because of column name changes, etc.  

    How would you recommend I map the two?   Is my only choice to manually write scripts for the data migration.  Any suggestion is very much appreciated.

    Thanks,

    Oscar

  37. Q: Will Visual Studio’s Data Compare allow me to compare Data on two different SQL Servers that have two different Database schemas also?

    A: It will not allow you to do this, there is currently not enough flexibility in the tool do achieve this.

  38. Randy Trexler says:

    I have an odd side effect.  After install, I have 2 of every data dude menu items in Visual Studio Data menu.  I uninstalled "previous versions" as prescribed…now if I try to uninstall using

    msiexec /X {DDF197C6-4507-3A19-A4B5-0E17CC931370}

    I get an error that ‘this action only valid for installed products’.  Why would I have 2 options for every data dude function?

  39. Q: I have an odd side effect.  After install, I have 2 of every data dude menu items in Visual Studio Data menu.

    A: Please see http://dbproj.com/Tutorials/tabid/62/TID/19/cid/2/Default.aspx

  40. Matt Wright says:

    The following query fails the build every time. Can anyone help?

    DECLARE @tableName VARCHAR(50) = ‘users’ ;

    WITH AllIndexes (tablename

    ,indexname

    ,columnname

    ,indexcolumnid

    ,isincludedcolumn)

     AS

     (

     SELECT  OBJECT_NAME(i.object_id) table_name

            ,i.name index_name

            ,c.name column_name

            ,ic.index_column_id

            ,ic.is_included_column

     FROM    sys.indexes i

     INNER JOIN sys.objects o

     ON      i.object_id = o.object_id

     INNER JOIN sys.index_columns ic

     ON      i.object_id = ic.object_id

             AND i.index_id = ic.index_id

     INNER JOIN sys.columns c

     ON      ic.object_id = c.object_id

             AND ic.column_id = c.column_id

     WHERE   o.type_desc = ‘USER_TABLE’

     )

       SELECT  i.name ‘Index Name’

              ,type_desc ‘Index Type’

              ,STUFF(( SELECT  ‘, ‘ + columnname

                       FROM    AllIndexes ai2

                       WHERE   ai2.indexname = i.name

                               AND ai2.isincludedcolumn = 0

                      ORDER BY indexcolumnid

                      FOR     XML PATH(”) ), 1, 2, ”) ‘Indexed Column(s)’

              ,ISNULL(STUFF(( SELECT  ‘, ‘ + columnname

                              FROM    AllIndexes ai2

                              WHERE   ai2.indexname = i.name

                                      AND ai2.isincludedcolumn = 1

                             ORDER BY indexcolumnid

                             FOR     XML PATH(”) ), 1, 2, ”), ”)  ‘Included Column(s)’

              ,CASE WHEN i.is_unique = 0 THEN ”

                    ELSE ‘UNIQUE’

               END ‘Is Unique?’

              ,CASE WHEN i.is_primary_key = 0 THEN ”

                    ELSE ‘PK’

               END ‘Is Primary Key?’

              ,CASE WHEN i.is_unique_constraint = 0 THEN ”

                    ELSE ‘UNIQUE CONSTRAINT’

               END ‘Is Unique Constraint?’

       FROM    sys.indexes i

       WHERE   object_name(i.object_id) = @tableName

               AND i.name IS NOT NULL

       ORDER BY i.is_unique DESC

       ,       i.is_primary_key DESC

       ,       i.is_unique_constraint DESC

       ,       i.name

  41. Q: The following query fails the build every time

    A: Did you add a reference to the master.dbschema file? You are referencing objects like sys.indexes which are defined in there.

    Also using the MSDN forums for support is probably easier: http://social.msdn.microsoft.com/forums/en-US/vstsdb/threads/

  42. Dante says:

    A customer installed the GRD R2 on a Visual Studio 2008 Professional. Is this scenario supported? It's not a DB pro version neither Team Suite.