Microsoft Visual Studio Team Edition for Database Professionals

Community Technology Preview for Service Release 1
Release Notes

This document lists the system requirements to install Microsoft Visual Studio Team Edition for Database Professionals. This document also describes issues that you might find while you use this release. You can find an online version of this document, which contains the most recent updates, at http://go.microsoft.com/fwlink/?LinkId=78581.

 

1.  System Requirements

Visual Studio Team Edition for Database Professionals has the following system requirements:

·           Visual Studio Professional Edition, Visual Studio Team Suite, or one of the role-based SKUs of Visual Studio Team System. The trial version of Visual Studio Team Edition for Database Professionals requires Visual Studio Team Suite.

o   The Visual Basic or C# language feature must be installed

o   MSXML must be installed (It is installed by default)

o   Visual Studio Professional Edition is included on the DVD for Visual Studio Team Edition for Database Professionals.

·           Microsoft SQL Server 2005 Express, Developer, Standard, or Enterprise Edition installed and running for design-time validation on the same computer as Visual Studio. For more information, see http://go.microsoft.com/fwlink/?LinkID=78582.

·           Windows Vista, Microsoft Windows 2000 with Service Pack 4 (SP4), Windows XP with Service Pack 2 (SP2), or Windows Server 2003 with Service Pack 1 (SP1).

 

You can order trial versions of Visual Studio Professional Edition or Visual Studio Team Suite at http://go.microsoft.com/fwlink/?LinkId=78583.

 

Before you install Visual Studio Team Edition for Database Professionals, you must uninstall any earlier version of that product.

 

2.  Known Issues

2.1.              Installation

2.1.1.  Unattended installation

You can install Visual Studio Team Edition for Database Professionals at a command prompt such that no user intervention is required to complete the installation. This type of installation referred to as a “silent” installation, and you might use it, for example, to install the product on several computers simultaneously. To perform a silent installation, you must create a file that specifies installation options for the product. You can use this file to install the product completely or to uninstall it. You cannot use this process to repair or reinstall the product.

To resolve this issue

To create an information file for unattended installation:

1.     Run the Setup application from the installation folder by using the following command line:

Setup\setup.exe /createunattend Path:\infofile.ini

2.     Follow the steps in the setup wizard to complete the installation.
In effect, you are recording an installation script. When the wizard finishes, it will produce a file called infofile.ini. You can copy that file so that other users can perform unattended installation with the same options that you used in step 2.

Note: The setup application might terminate unexpectedly if you create an unattended installation file to uninstall the product. This termination does not affect the contents of the file, which can be used to uninstall the product.

To use the information file to perform an unattended installation:

·         Run the Setup application from the installation folder by using the following command line:

Setup\setup.exe /unattendfile Path:\infofile.ini

2.1.2.  Installation and Visual Studio 2005 language

If the language of the version of Team Edition for Database Professionals that you install does not match the language of your installation of Visual Studio 2005, you cannot perform unit tests on a database.

To resolve this issue

You must install the version of Team Edition for Database Professionals whose language matches that of your installation of Visual Studio 2005.

2.1.3.  Installation fails due to missing ProjectAggregator2

If you are installing Team Edition for Database Professionals onto a localized platform, the Setup application might fail, indicating that ProjectAggregator2 cannot be found.

To resolve this issue

You can manually install ProjectAggregator2. Locate ProjectAggregator2.msi in the location from where you launched the product installation. Typically, you will find this .msi file on the physical media in the wcu\ProjectAggregator folder. After you have installed ProjectAggregator2, you can re-run the Setup application to install Team Edition for Database Professionals.

2.1.4.  Repair and Reinstall

If you must repair or reinstall Team Edition for Database Professionals, you must have access to the source files for your original installation. For example, if you originally installed from a DVD, you must have the DVD to repair or reinstall the product. If you installed from a network share, the same network share must be available to repair or reinstall the product.

To resolve this issue

If you installed the product from a CD or DVD, put that disc in your computer either before you try to repair or reinstall the product or when you are prompted during the repair or reinstall operation. If you installed the product from a network share, make sure that the network share is available before you try to repair or reinstall the product.

2.1.5.  Installation requires at least one Visual Studio programming language

To install Team Edition for Database Professionals, you must have an existing installation of Visual Studio 2005, and that installation must have at least one programming language installed.

To resolve this issue

Before you install Team Edition for Database Professionals, re-run the Setup application for Visual Studio 2005, and specify at least one programming language as part of the installation process.

2.2.              General

2.2.1.  Supported versions of SQL Server

There are a limited number of Microsoft SQL Server versions and compatibility modes from which you can import schemas and to which you can deploy databases. The following table shows from which versions and compatibility modes you can import database schemas into which types of database projects.

 

Source Database Server

SQL Server 2000

SQL Server 2005

Database Compatibility

6.5

7.0

8.0

6.5

7.0

8.0

9.0

SQL Server 2000 Database Project

Not Supported

Not Supported

Supported

Not Supported

Not Supported

Supported*

Not Supported

SQL Server 2005 Database Project

Not Supported

Not Supported

Supported

Not Supported

Not Supported

Supported

Supported

* - You can import objects from a SQL Server 2005 database into a SQL Server 2000 database project only if SQL Server 2000 supports those objects.

For database deployment, the following table shows which versions and compatibility modes are supported for the source database project and target database server.

 

Target Database Server

SQL Server 2000**

SQL Server 2005

Database Compatibility

6.5

7.0

8.0

6.5

7.0

8.0

9.0

SQL Server 2000 Database Project

Not Supported

Not Supported

Supported

Not Supported

Not Supported

Partially Supported

Partially Supported

SQL Server 2005 Database Project

Not Supported

Not Supported

Not Supported

Not Supported

Not Supported

Not Supported

Partially Supported

 

** - You must have applied SQL Server 2000 Service Pack 4 (SP4) to successfully deploy your database project with Team Edition for Database Professionals.

 

2.2.2.  Compatibility with prior CTPs

If you have database projects that you created by using a CTP of Team Edition for Database Professionals older than CTP6, you cannot open them. To implement new features, some breaking changes were required in the file formats for database projects, data generation plans, and database unit tests.

To resolve this issue

Create a database project. On the Project menu, click Add Existing Item to add the .sql files that contain your database object definitions. You must manually recreate any data generation plans and database unit tests.

2.2.3.  Renaming files that are contained in a database project

File names for project items are not necessarily robust to underlying changes. If you change the name of a file, you might not be able to reload your project.

To resolve this issue

Avoid renaming the files outside of Visual Studio.

2.2.4.  Help topic integration

You must install the MSDN Library that contains the documentation for Visual Studio Team Edition for Database Professionals for help topics to appear when you press F1.

2.2.5.  Connect Properties and Save my Password

If you use SQL Server Authentication when you connect to a database server, your encrypted password is saved to your local registry even if you do not select the Save my password check box.

To resolve this issue

There is no workaround for this issue at this time.

2.3.              Database Project, Build, and Deployment

2.3.1.  Required Permissions to Create and Use Database Projects

To create and use database projects, you must belong to the securityadmin and the dbcreator fixed server roles for your design-time validation database. In addition, if you are not connecting to SQL Server as a member of the sysadmin role, you must have View Server State permissions on the server and a member of the sysadmin role must run the following script:

USE MASTER

GO

GRANT EXECUTE ON sp_detach_db TO public

GO

To resolve this issue

Have your database administrator add you to the securityadmin and dbcreator fixed server roles. If you run as sysadmin, you already belong to these roles.

2.3.2.  Changing the target database project in the Import Database Schema dialog box

If you have multiple database projects in a single solution, you cannot click one project, use the Import Database Schema command, and change the target in the Import Database Schema dialog box. Even if you specify a different project in that dialog box, the schema will be imported to the project that you initially clicked. 

Example: You have a solution that contains database projects ProjectA and ProjectB. You click ProjectA and use the Import Database Schema command. Even if you change the target in the Import Database Schema dialog box to ProjectB, the schema will be imported to ProjectA.

To resolve this issue

Click the correct target database project before you use the Import Database Schema command. If you click the wrong target, click Cancel to close the Import Database Schema dialog box, click the correct target, and use the Import Database Schema command again.

2.3.3.  Opening the same database project in multiple instances of Visual Studio

You cannot open a database project in more than one instance of Visual Studio. If you try to open a database project that is already open in another instance of Visual Studio, an error appears that says "The design database is locked. If you are trying to open a database project that is already open in another instance of Visual Studio, you must first close the other instance."

To resolve this issue

Close the solution that contains the database project in the other instance of Visual Studio.

2.3.4.  Importing schemas that contain encrypted objects

If you import a schema that has one or more encrypted objects in it, those objects will not be imported and no error will appear.

To resolve this issue

You can add the objects to the database project manually. In Schema View, right-click the database project node, point to Add, and click the type of encrypted object that you want to add, such as Procedure.

2.3.5.  Deploying a database project with new users

When you add users to a database project, if the related logins do not exist, you must add them. You do so by adding the sp_addlogin (SQL Server 2000) or CREATE LOGIN (SQL Server 2005) statements to the Logins.Sql script that the pre-deployment script includes.

To resolve this issue

In Solution Explorer, expand the Scripts folder, open the Pre-Deployment folder and double-click the Logins.sql file to open it in the Transact-SQL (T-SQL) editor. Add the sp_addlogin or CREATE LOGIN statements, and then save your changes before you build and deploy your database project.

2.3.6.  Restarting SQL Server when a database project is open

If you stop and restart your local instance of SQL Server when a database project is open, an error message appears and indicates that you have lost your connection. Any modifications to the database project will cause the error message to reappear until you unload and reload your project.

To resolve this issue

In Solution Explorer, click your database project, open the Project menu, and then click Unload Project. When the project is unloaded, open the Project menu and then click Reload Project. As an alternative, you can close and reopen your solution.

2.3.7.  Full-text index files

If you add a full-text index to your database project from Schema View and your Schema View is sorted by Type, the file for the index might get created directly under the project node.

To resolve this issue

Sort Schema View by Schema before you add the index. As an alternative, you can open Solution Explorer, open the Schema Objects folder, open the tables Folder, open the Indexes folder, and manually move the script to the Indexes folder after you add the file.

2.3.8.  Visual Studio Team Foundation Build Integration

If you use Team Foundation Build, any non-default values for the Target Database, TargetConnectionString, and DefaultDataPath properties are ignored.

To resolve this issue

To build successfully from Team Foundation Build, you must modify the ProjectName.dbproj file to add the TargetDatabase, TargetConnectionString, and DefaultDataPath properties from the ProjectName.dbproj.user file for the configuration that you want to build.

2.3.9.  Errors from the Import Script Wizard

If you import database objects by using the Import Script wizard, no errors appear even if errors are encountered. Any statements that cannot be successfully interpreted are ignored and files for them are not generated in the database project.

To resolve this issue

There is no workaround for this issue at this time.

2.3.10.               The Import Script Wizard and sp_execsql

If you import a script that contains DLL statements that are embedded inside sp_execsql calls, any objects that are defined within those DLL statements are not added to the database project. For example, the procedure in the following example will not be added to the database project:

EXEC dbo.sp_executesql @statement = N'

-- Proc Comments go here

CREATE PROCEDURE [dbo].[my_proc]

            @p1 NVARCHAR(40)

AS

SET NOCOUNT ON

SELECT @p1

'

To resolve this issue

If you have a database that contains the object definitions, you can use the Import Database Schema command into an empty database project. If you must add the missing object definitions to a database project that already contains object definitions, you can use Schema Compare to compare the database to your database project, and then write the additional objects to the database project.

2.3.11.               Triggers in Solution Explorer

If you add or import triggers, they are added beneath the Schema Objects folder, rather than beneath the Triggers folder.

To resolve this issue

You must move the files to the correct location within the database project.

2.3.12.               Unexpected exception encountered. Details of the exception can be found in the file {0}.

If the Transact-SQL statement interpreter stops responding while reading an SQL statement, an error appears in the Error List window. Also, a temporary file that has information about the exception is created in the Windows Temp folder with a file name of TS Data Guid.tmp.

To resolve this issue

If this error appears, report it through the Microsoft Connect site and attach the temporary file.

2.3.13.               Renaming Database Projects

If you rename your database project, any existing .dbproj.user files are not renamed. The project settings that are stored in the .dbproj.user file are saved to the new name, but the old file will remain.

To resolve this issue

You must manually delete the old .dbproj.user files after you rename a database project.

2.3.14.               Stored Procedure Parameters and Case Sensitivity

The parameters of a stored procedure are case sensitive if the design-time validation database server is case sensitive, regardless of the collation setting of the database project.

To resolve this issue

If your stored procedure parameters must be case insensitive, set your design-time validation database server to be case insensitive.

2.3.15.               Statement Restrictions in Schema Object Definitions

You cannot use the following statements in the definition file for the specified schema objects:

·         Check Constraints – ALTER TABLE [ WITH { CHECK | NOCHECK } ] {CHECK | NOCHECK} CONSTRAINT

·         Foreign Keys – ALTER TABLE [ WITH {CHECK | NOCHECK} ] {CHECK | NOCHECK} CONSTRAINT

·         DML Triggers – ALTER TABLE {ENABLE | DISABLE} TRIGGER TriggerName

·         DML Triggers – DISABLE TRIGGER { [Schema.]TriggerName  ON ObjectName

·         Database Triggers – DISABLE TRIGGER { [Schema.]TriggerName  ON DATABASE

·         All Server Triggers – DISABLE TRIGGER { [Schema.]TriggerName  ON ALL SERVER

·         Tables – ALTER TABLE { ENABLE | DISABLE } TRIGGER ALL

·         Indexes – ALTER INDEX DISABLE

·         Full-text Indexes – ALTER FULLTEXT INDEX ON TableName  {ENABLE | DISABLE}

·         Queues – ALTER QUEUE ObjectName WITH STATUS = { ON | OFF }

To resolve this issue

You must include these kinds of statements in a post-deployment script. For more information about post-deployment scripts, see the product documentation.

2.3.16.               Warnings about Ambiguous References in JOIN Statements

In some cases, you might receive a warning for a valid T-SQL statement that involves JOIN statements even if SQL Server would accept that statement. For example, you can create the following view definition:

 

CREATE VIEW [dbo].[View1]

AS

            SELECT column_2 FROM

            Table1 LEFT OUTER JOIN (SELECT column_1 FROM Table2 as T_T2) as B on 1 = 1

               LEFT OUTER JOIN (SELECT column_1 FROM Table3 as T_T3) as C on 1 = 1

A warning appears for the second “SELECT column_1”.

To resolve this issue

To resolve the warning, you must fully qualify the reference. For example, you could rework the previous statements in the following way:

CREATE VIEW [dbo].[View1]

AS

            SELECT column_2 FROM

            Table1 LEFT OUTER JOIN (SELECT column_1 FROM Table2 as T_T2) as B on 1 = 1

               LEFT OUTER JOIN (SELECT T_T3.column_1 FROM Table3 as T_T3) as C on 1 = 1

2.3.17.               Vardecimal Storage

Team Edition for Database Professionals does not directly support vardecimal storage as it is implemented in SQL Server 2005 Service Pack 2 (SP2). If you import a schema from a database that has vardecimal storage enabled for the database and for one or more tables, the setting is ignored. No errors appear, and no statements are added to the ScriptsIgnoredOnImport.sql file. You can build and deploy the database project, but the build script does not create vardecimal storage on the database or any tables.

 

You will also encounter issues if you import a script that contains the following statements:

-- enable vardecimal storage format for database

exec sp_db_vardecimal_storage_format 'DatabaseName', 'on'

 

-- enable vardecimal storage format on t1 in database

exec sys.sp_tableoption 'TableName', 'vardecimal storage format', 'on'

 

The statement for the storage format of the database is imported into the ScriptsIgnoredOnImport.sql file. The statement for the table storage format is imported into the definition for the table. You cannot deploy the database project because the statement that enables vardecimal storage for the database was not executed, which causes the statement for the table to fail.

To resolve this issue

To resolve the issues that resulted when you imported the schema from a database, you must add the exec sp_db_vardecimal_storage_format statements to your pre-deployment script. You can then add the exec sys.sp_tableoption statements to the tables in which you want to use the vardecimal storage format.

To resolve the issues that resulted when you imported a script, you must add the exec sp_db_vardecimal_storage_format statements to your pre-deployment script.

2.4.              Database Unit Testing

2.4.1.  Only one batch statement is supported per test script for database unit testing

Only the first batch statement is processed.

To resolve this issue

Avoid using more than one batch statement in your unit test scripts.

2.4.2.  Changing connection strings

The app.config file in your test project contains connection strings to a database that you are testing. If a connection string specifies an incorrect server or database, database unit tests in that test project fail. Even if you correct the connection string in the app.config file and run tests, the tests still fail.

To resolve this issue

You can resolve this issue by installing Visual Studio 2005 SP1. If you cannot upgrade at this time, correct the connection string, rebuild the test project, and then run the database unit tests again.

 

2.4.3.  Opening a data generation plan while the Database Unit Test Designer is open

You might experience a delay if you open a database unit test in the Database Unit Test Designer and then you open the test’s data generation plan without first closing the designer.

To resolve this issue

Before you open a data generation plan, close the Database Unit Test Designer for any database unit tests that are associated with that data generation plan.

2.4.4.  Test Condition Extensibility

If an error occurs when a custom test condition is loaded, no error appears. However, the test condition does not appear in the list of test conditions in the Database Unit Test Designer.

To resolve this issue

You must fix the issue with the test condition before it will appear in the list.

2.4.5.  Registering new test conditions

The Extensions.xml file format has changed slightly from earlier CTPs. You must use the new format for your test condition to appear in the user interface. For more information, see the product documentation.

To resolve this issue

You must update the Extensions.xml file to match the following example:

<?xml version="1.0" encoding="utf-8" ?>

  <extensions assembly="<enter assembly name here>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=<enter key here>" version="1"  xmlns="urn:Microsoft.VisualStudio.TeamSystem.Data.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.VisualStudio.TeamSystem.Data.Extensions Microsoft.VisualStudio.TeamSystem.Data.Extensions.xsd">

 <extension type="<enter extension type here>" enabled="true" />

</extensions>

2.4.6.  Database unit tests for triggers that are based on views

Transact-SQL (T-SQL) code stubs will not be automatically generated for database unit tests for triggers that are based on views. If you right-click on a trigger that is based on a view, the Create Unit Tests menu item is disabled on  the context menu.

To resolve this issue

You must manually create a database unit test for the trigger by writing the appropriate T-SQL statements in a new database unit test.

2.4.7.  Unit tests on different locales

If you create database unit tests that must run on a computer that is set to a different locale than that of the computer on which the unit test was created, you must specify the expected results in the format of the locale where the unit test will be run. This issue primarily effects the Expected Value property for Scalar Value test results. If you want to run unit tests on multiple locales, you must create one test per set of conditions for each locale.

2.5.              Data Generator

2.5.1.  Inserting too many rows during Data Generation

After you create a data generation plan, if you specify too large a value for the Rows to Insert field for one or more tables in your database, Visual Studio might encounter an exception when generating data into your database. The maximum value that causes the exception depends on the configuration of your database server.

To resolve this issue

Specify fewer rows to insert. For example, on a 1.7 GHz computer with 1 GB of RAM, we recommend that you insert no more than 1000 rows into each table in the Northwind database.

2.5.2.  Deleting too many rows during Data Generation

Before data is generated for your database, you are asked whether you want to clear the contents of the selected tables. If you choose to clear the contents of those tables and the selected tables contain a large number of rows, a SQL timeout error might appear in the Error List window. The number of rows required to cause this problem depends on the configuration of your database server.

To resolve this issue

Use SQL Server management tools to delete the rows from the tables before you attempt to generate data.

2.5.3.  Connecting from Data Generator to Microsoft SQL Server 2000

If you installed Microsoft SQL Server 2000 after you installed SQL Server 2005 or SQL Server Express, a known issue prevents the SQL Browser from reading that instance’s registry key. As a result, that instance will not be exposed for port resolution, and TCP will not function. You might receive a connection error message.

To resolve this issue

For information about a workaround for this problem, see http://go.microsoft.com/fwlink/?LinkId=78584.

2.5.4.  Constraints and Data Generator

When you populate a database, Data Generator does not take constraints into account. As a result, SQL Server might raise errors if you attempt to populate a database that includes constraints.

To resolve this issue

Change the generator properties to match the table or column constraints that will affect population. For example, you can change your generator to the Regular Expression generator and supply a pattern that will satisfy the constraint, or you can change your generator to the Schema Bound generator and use data that satisfies the constraint.

2.5.5.  Unhandled exceptions in custom generators can cause Visual Studio to stop responding or terminate unexpectedly.

If you create a custom generator and that generator causes an unhandled exception, that unhandled exception might cause Visual Studio to stop responding or terminate unexpectedly.

To resolve this issue

You must identify and handle exceptions within your custom generator.

2.6.              Schema and Data Compare

2.6.1.  Schema Compare shows permissions as missing in the database project

You can import a schema from a database into a database project and then compare schemas using the database as the source and the database project as the target. However, any permissions that originated in the source database will appear as missing in the target (the database project).

To resolve this issue

There is currently no workaround for this issue. However, to verify the permissions that were imported, examine the post-deployment script. To open this script, expand your database project in Solution Explorer, expand the Scripts folder, expand the Post-deployment folder, and then double-click the script.postdeployment.sql file.

 

2.6.2.  Data Compare and decimal separators

Data Compare will always use a ‘.’ as the decimal separator for columns that are decimal or money types, even for locales that use a different decimal separator character (such as a comma). Columns of other data types, such as real and double, will use the correct decimal separator for your locale.

To resolve this issue

There is no workaround for this issue.

2.7.              Database Refactoring

2.7.1.  Refactoring scripts that are stored in Visual SourceSafe

If you use a refactoring operation to update scripts that are stored in Visual SourceSafe, a warning message appears for each script (.sql) file that the operation updates. The message reads “There already exists an item with the same name under source control. If you continue with the add, this item will automatically assume the identity of the item under source control. Do you wish to proceed with the add anyway?”

To resolve this issue

Select the Don’t show this dialog box again (Always allow add of existing items) check box to keep the message from reappearing.

2.8.              Transact-SQL (T-SQL) editor

2.8.1.  Incorrect error line number when executing stored procedures

If you execute a stored procedure in the T-SQL editor, an error occurs within that stored procedure, and you double-click the error in the Error List window, you will always go to the first line in the editor. The line number that appears in the Error List window is the line number within the stored procedure, not the line number within the editor.

To resolve this issue

Open the source for the stored procedure to display the line that resulted in the error. If the stored procedure is defined within a database project, you can double-click the stored procedure in Solution Explorer or Schema View to open it in the editor.