Presentation is loading. Please wait.

Presentation is loading. Please wait.

Database projects in visual studio 2010 Anthony Brown

Similar presentations


Presentation on theme: "Database projects in visual studio 2010 Anthony Brown"— Presentation transcript:

1 Database projects in visual studio 2010 Anthony Brown anthony@found-it.net http://www.sqlblogcasts.com/blogs/antxxxx

2 Agenda What are they? How they work What else you can do Limitations

3 What are they for Offline development of database objects Manage database objects in source control Validation at design time, not deploy Allow easy creation of databases in a consistent state

4 Version comparison FeatureVisual Studio 2010 Professional Visual Studio 2010 Premium and Ultimate Schema Compare Data Compare Database Unit TestsExecute Only Transact-SQL Refactoring Execute Only Transact-SQL Static Code AnalysisExecute Only Data GenerationExecute Only Team Foundation Server Build Integration Command line deploy (VSDBCMD)

5 Before database projects Created a change script which was run against all environments Had to maintain change script for each change and run in specific order Had to know state of target server to work out which scripts to run, or create complex scripts

6 Before database projects if not exists (select null from sys.tables where name = 'ErrorLog' and schema_id = schema_id('dbo')) begin CREATE TABLE [dbo].[ErrorLog] ( [ErrorLogID] INT IDENTITY (1, 1) NOT NULL, [ErrorTime] DATETIME NOT NULL, [UserName] [sysname] NOT NULL, [ErrorNumber] INT NOT NULL, [ErrorSeverity] INT NULL, [ErrorState] INT NULL, [ErrorProcedure] NVARCHAR (126) NULL, [ErrorLine] INT NULL, [ErrorMessage] NVARCHAR (4000) NOT NULL ); end go if not exists (select null from sys.columns where name = 'newcolumn' and OBJECT_NAME(object_id) = 'ErrorLog') begin alter table ErrorLog add newcolumn int null end

7 With database projects Change script generated at deploy time based on compiled project and state of target database Do not need to know state of target database before deploy

8 With database projects THE PROJECT IS THE TRUTH

9 Structure All database objects are stored in a project All objects are defined fully Server projects for server level objects (logins, endpoints etc) Database projects for database level objects (tables, stored procedures, users etc)

10 Import schema Can import whole database only into blank project Can import script into existing database project

11 demos

12 Build Validates all objects Doesn’t need a database connection Creates compiled dbschema file

13 Schema compare Gui method of comparing project and target server Not available in professional

14 Deploy Used to generate sql file that will make the target database the same as the project Optionally runs the sql file against the target database Can be run from – Visual studio – Msbuild/team build – Vsdbcmd – API

15 Deploy

16 demo

17 Permissions Managed in an xml file Validated to ensure object and user/role exists in project Might need to define login for user in server project Not very user friendly  Can import from a script

18 Demo

19 What else they can do References (dbschema, xsd, clr) Static code analysis Database unit tests & data generation (execute only in professional) Refactor (execute only in professional) Extensibility

20 New in 2010 Code snippets Intellisense Integrated debugger Extensibility

21 Not supported - 1 Sql agent jobs Replication Replicated tables schema modification (can workaround by setting VerifyDeployment=false) For replication on stored procedures

22 Not supported - 2 Change data capture (change tracking supported in 2010) Reference data Circular cross database references

23 Not supported - 3 Session/global temporary table With check/with no check on constraints Non sql server linked servers Create resource pool Create workload group Create full text stoplist Reporting services Integration services Analysis services Table – lock escalation Index options – maxdop, drop_existing, sort_in_tempdb

24 Further reading http://vsdatabaseguide.codeplex.com/ http://social.msdn.microsoft.com/Forums/en- US/vstsdb/threads http://social.msdn.microsoft.com/Forums/en- US/vstsdb/threads


Download ppt "Database projects in visual studio 2010 Anthony Brown"

Similar presentations


Ads by Google