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.
- Full support for SQL Server 2000, SQL Server 2005 and SQL Server 2008 support.
- 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
- Support for SQL Server 2008 data types
- Data Compare can now be executed through DTE
- 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!
- Visual Studio 2008 SP1 RTM (make sure this is the RTM not the beta of SP1, the GDR will not install with the beta release of SP1)
- Microsoft SQL Server Compact Edition 3.5 SP1 (this is normally included in the setup of VS 2008 SP1)
Installation
You can download the Visual Studio Team System 2008 Database Edition GDR from the following location:
- Setup
https://download.microsoft.com/download/0/a/e/0ae1153a-8798-474a-93e6-d19299f37c8b/setup.exe - Read Me
https://download.microsoft.com/download/0/a/e/0ae1153a-8798-474a-93e6-d19299f37c8b/Readme.mht - Documentation:
https://download.microsoft.com/download/0/a/e/0ae1153a-8798-474a-93e6-d19299f37c8b/Documentation.zip
Contains:- VSTS 2008 Database Edition GDR User Manual
- VSTS 2008 Database Edition GDR API Reference
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
Anonymous
November 25, 2008
The comment has been removedAnonymous
November 25, 2008
Team System 2008 Database Edition dispo en RTMAnonymous
November 25, 2008
The comment has been removedAnonymous
November 25, 2008
Gert - you and the team ROCK! Awesome release! James WorldAnonymous
November 26, 2008
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 CorporationAnonymous
November 26, 2008
Al momento è disponibile solo in Inglese, le versioni localizzate (anche in Italiano) usciranno a breve.Anonymous
November 26, 2008
The long awaited update for VSTS 2008 Database professional is now available. You may have been followingAnonymous
November 26, 2008
The comment has been removedAnonymous
November 26, 2008
The comment has been removedAnonymous
November 26, 2008
Nous venons d'annoncer la disponibilité de la version 2008 GDR de VSTS Database Edition. Des nombreusesAnonymous
November 26, 2008
The comment has been removedAnonymous
November 26, 2008
The comment has been removedAnonymous
November 27, 2008
Dear Developers, how-to deploy project with change tracking enabled on table?Anonymous
November 27, 2008
Great stuff, I have upgraded and built and deployed already --- just need to know how the permissions xml property file worksAnonymous
November 27, 2008
There have been two new announcements for Team System fans in the past 24 hours. First, Gert has announced...Anonymous
November 27, 2008
遠い母国では感謝祭でお休みに入っている頃ですが、こんな時こそ日本で皆さんと対談したりユーザーさん達と触れ合う機会を設けさせてもらえることに、感謝です。 日々の悩みや苦しみは当然ありますし、製品について色々と突っ込まれて答えれない時の凹みもありますが、感謝できることが常に増してあるので、支えになっています。Anonymous
November 27, 2008
Nuevo Release de DB: "Mejor, robusto y rápido.", el post original lo pueden ver aquí .Anonymous
November 27, 2008
Nuevo Release de DB: "Mejor, robusto y rápido.", el post original lo pueden ver aquí .Anonymous
November 27, 2008
The comment has been removedAnonymous
December 01, 2008
The comment has been removedAnonymous
December 01, 2008
In case you missed it, Gert sent word last week that the newest version of the Visual Studio DatabaseAnonymous
December 01, 2008
The comment has been removedAnonymous
December 02, 2008
Does this effect those of us using Team Suite?Anonymous
December 03, 2008
The comment has been removedAnonymous
December 04, 2008
Visual Studio Team System 2008 Database Edition GDR - RTM - очень полезная новость, для тех кто разрабатывает...Anonymous
December 09, 2008
Echipa "Data Dude" (sau altfel spus echipa de Visual Studio Team Edition for Database Professionals)Anonymous
December 15, 2008
The comment has been removedAnonymous
December 19, 2008
Visual Studio Team System 2008 Database Edition GDR 日本語版が本日正式にリリースされましたのでお知らせいたします。 ダウンロードサイト : http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=jaAnonymous
December 23, 2008
This blog just summarises some of the issues I picked up … some of which ‘again’ … during discussionsAnonymous
December 23, 2008
How do you figure out if you have VS 2008 RTM or beta?Anonymous
January 17, 2009
The SqlServer 2008 support in the upgrade is awesome! thanks.Anonymous
February 07, 2009
[ 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éhezAnonymous
February 11, 2009
Con Diego necesitando generar valores aleatorios en una base de datos, en otra oportunidad estábamosAnonymous
March 06, 2009
Nuevo Release de DB: "Mejor, robusto y rápido.", el post original lo pueden ver aquí .Anonymous
April 14, 2009
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, KhyatiAnonymous
June 03, 2009
The comment has been removedAnonymous
December 08, 2009
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, OscarAnonymous
December 09, 2009
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.Anonymous
December 23, 2009
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?Anonymous
December 27, 2009
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.aspxAnonymous
December 28, 2009
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.nameAnonymous
December 29, 2009
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/Anonymous
March 18, 2010
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.