visual studio for sql developers -...
TRANSCRIPT
![Page 1: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/1.jpg)
Visual Studio
for SQL Developers
September 2, 2015
Gent, Belgium
Andrey Zavadskiy, Krasnodar, Russia
MCSE/MCSD/MCT
![Page 2: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/2.jpg)
About me
Solutions architect, SQL & .NET
developer
20 years in IT industry
Worked with SQL Server since
7.0 back in 2001
Developed in C#, ASP.NET, MVC,
JavaScript, SharePoint
MCDBA, MCSE, MCSD
MCT since 2008
PASS speaker
https://www.facebook.com/andrey.k.zavadskiy
@AndreyZavadskiy
https://www.linkedin.com/in/zavadskiy
http://andreyzavadskiy.com
![Page 3: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/3.jpg)
3
About Krasnodar
Regional center
Was founded in 1793, renamed in 1920
Original name Yekaterinodar – Catherine’s gift
Distances: Istanbul 929 km
Moscow 1196 km
Warsaw 1541 km
Copenhagen 2200 km
Brussels 2640 km
Paris 2793 km
Lisbon 3995 km
![Page 4: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/4.jpg)
4
Session Goal
Provide a practical overview of how to use SQL
Server Data Tools to create, test, deploy and
debug a database project
![Page 5: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/5.jpg)
5
Contents
Online database development
Offline database development
Deployment
Debugging
Database unit testing
Additional tools
![Page 6: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/6.jpg)
6
Concept of SQL Server Data Tools
Focusing on the final version of code rather
then on many ALTER iterations
The unique IDE for all database developer’s
needs Based on Visual Studio
Working with connected databases (like SQL Server
Management Studio)
Project approach to code writing
Debugging and unit testing
Version control (via integration with Team Foundation
Server)
![Page 7: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/7.jpg)
7
Online Database Development
Available through SQL Server Object
Explorer
Functions are similar to SQL Server
Management Studio
Tools: Table Designer
Code Editor
Visual Data Editor
Query Window
Scripting capabilities
![Page 8: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/8.jpg)
8
DEMO
Working with connected database
![Page 9: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/9.jpg)
9
Offline Database Development
Creating a database project
Creating database objects Import from existing database
Creating from scratch
Project properties
![Page 10: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/10.jpg)
10
DEMO
Creating a database project
![Page 11: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/11.jpg)
11
Database Deployment
Deployment in the connected database Publishes the script (CREATE)
Compares against the target database
Creates a change script (ALTER)
Runs the change script on the target database
Deployment in the disconnected database Creates a DACPAC package
Distribute and publish DACPAC
Publishing profiles and settings
![Page 12: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/12.jpg)
12
DEMO
Publishing a database
![Page 13: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/13.jpg)
13
Deployment Scripts For Inserting Data
Creating scripts Based on the existing data
From scratch
Various types of scripts T-SQL script
Pre-deployment
Post-deployment
![Page 14: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/14.jpg)
14
DEMO
Scripting data for deployment
![Page 15: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/15.jpg)
15
Multiple Databases
Using objects from another database on: Same instance
Another instance – needs linked server
Addressing remote database object:
4-part naming convention
Synonyms
SSDT knows nothing about remote database objects
Deployment to multiple databases Impossible, can be implemented with multiple projects and
multiple deployments
![Page 16: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/16.jpg)
16
DEMO
Using data from other databases
![Page 17: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/17.jpg)
17
Debugging
Only in connected environment
Breakpoint can be set with SQL Server Object Explorer
Two modes:
1. Execute query with debugger Similar to SQL Server Management Studio
2. Classic Visual Studio debugging with F5 Has a separate connection to SQL Server/database
Needs a project startup script
![Page 18: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/18.jpg)
18
DEMO
Debugging T-SQL code
![Page 19: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/19.jpg)
19
Database Unit Testing
Unit test Is performed on a smallest piece of testable code
Isolated from the other pieces of code
Should be repeatable
Gives the answer to only one question
Usually created by developers
![Page 20: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/20.jpg)
20
What for?
Confidence in your code
Confirms that product requirements are
working
Early error checking of code
Instant visual feedback on errors
Helps to check subsequent changes in code
Provides documentation for other developers
![Page 21: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/21.jpg)
21
Where are the bugs?
Invoked unit of code
Unit of code Test
Dependency
![Page 22: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/22.jpg)
22
What can be tested?
Meta-data Table structure, field type and length
Existence of objects
Constraints CHECK, DEFAULT, PRIMARY KEY, FOREIGN KEY, UNIQUE
T-SQL code Stored procedures, Functions, Triggers
Security permissions
Execution time
![Page 23: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/23.jpg)
23
Data that can be tested
Scalar values Normal values
Errors (incorrect values)
Very big values
NULL
Table values Rowset
Empty rowset
Very big rowset
Metadata
![Page 24: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/24.jpg)
24
DEMO
Creating a database unit test project
Unit Test Project Internals
![Page 25: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/25.jpg)
25
Unit Test Flow
Test initialize
Unit test(s) Pre-test
Test
Post-test
Test cleanup
![Page 26: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/26.jpg)
26
Unit Test Features
Can have more than one test condition
Can handle exceptions raised in database
Can be run within a transaction
Can use a second connection for pre/post
test phases
Allows to create and use custom test
conditions as Visual Studio extension (dll) How-to: https://msdn.microsoft.com/en-
us/library/jj860449(v=vs.103).aspx
Example: https://ssdtconditions.codeplex.com/
![Page 27: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/27.jpg)
27
DEMO
Positive test
Negative test
Running test in transaction
Checking metadata
Checking table equality
![Page 28: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/28.jpg)
28
Debugging in unit tests
Can debug only the T-SQL code to be tested Breakpoint can be set inside the stored procedure, function
or trigger
Can’t debug the T-SQL code of the unit test
itself
![Page 29: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/29.jpg)
29
DEMO
Debugging a code from within a database
unit test
![Page 30: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/30.jpg)
30
Additional tools
Comparison tools Only in Professional and Ultimate Editions
Schema compare
Data compare
Needs a key
Code analysis
Refactoring
![Page 31: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/31.jpg)
31
DEMO
Comparing schemas and data
![Page 32: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/32.jpg)
32
Summary
SSDT – unique tool for SQL developer
Declarative model of database development
Covers all stages: Create
Debug
Test
Deploy
![Page 33: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/33.jpg)
33
References
MSDN: SQL Server Data Toolshttps://msdn.microsoft.com/en-
us/library/hh272686(v=vs.103).aspx
SSDT Team Bloghttp://blogs.msdn.com/b/ssdt/
MSDN Forumhttps://social.msdn.microsoft.com/Forums/sqlserver/en-
US/home?forum=ssdt
![Page 34: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/34.jpg)
Questions?
![Page 35: Visual Studio for SQL Developers - andreyzavadskiy.comandreyzavadskiy.com/wp-content/uploads/2015/09/Andrey-Zavadskiy...Visual Studio for SQL Developers September 2, 2015 Gent, Belgium](https://reader031.vdocuments.site/reader031/viewer/2022022805/5ca9406188c993130d8b7605/html5/thumbnails/35.jpg)
Thank you for attending!