SlideShare una empresa de Scribd logo
1 de 73
1 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
SQL Saturday #176
Pordenone, Italy
SQL Server Data Tools




 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
#sqlsat176



3 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Marco Parenzan

  .NET Developer, SQL User
  1nn0va Speaker (www.innovazionefvg.net)
  Trainer and consultant on application
   development in companies and in University
   (of Trieste)
  Head of Development in CGN S.P.A.
   (www.cgn.it)


4 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
The Developer‟s experience

    DATABASE DEVELOPMENT


5 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Database Development

  Often not integrated into application life cycle
   management and processes
  What is a database development
   experience?
  Install SSMS into developer machine….
        It‟s an «admin» tool
        Outside Visual Studio (it‟s Visual Studio yes)
  Third party tools…
  What does »deployment» means?

6 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
The premise

    IMPERATIVE DATABASE
    DEVELOPMENT
7 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Database Development Challenges

  Databases are inherently stateful
        Focus is on ALTER instead of CREATE
        Dependencies complicate scripts
        Errors are often found only when scripts are
         executed
  Synchronizing application and database
   versions
  Targeting different SQL Server and SQL
   Azure versions
8 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Simple Schema Versioning Example
-- version 1
CREATE TABLE dbo.Speakers
(
 SpeakerId INT NOT NULL,
 FirstName NVARCHAR(64) NOT NULL,
 LastName NVARCHAR(64) NOT NULL,

)

-- version 2                                             -- version 3
ALTER TABLE dbo.Speakers                                 ALTER TABLE dbo.Speakers
WITH CHECK ADD CONSTRAINT                                WITH CHECK
Speaker_PK                                               ADD CONSTRAINT Speaker_PK UNIQUE
                                                         (LastName, FirstName)

V1           V2         V3                                                     Revision History


    9 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Imperative

   Imperative scripts hard codes knowledge about:
         The state of the target system:
                Presence of objects, dependencies, unbinding, rebinding
                Required ordering of operations
         Cumulative changes need to be serialized
                v1v2v3v4v5 instead of v1v4v5
         Validating the end-result against expected end-state
          is hard
                No easy way to compare expected vs. actual
         Batching or separating multiple changes
   There are third party tools

10 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Imperative Versioning
      -- version 1 Add table dbo.Auction
      IF OBJECT_ID (N'dbo.Auction', N'U') IS NULL
      BEGIN
           CREATE TABLE dbo.Auction
           (`
              id INT NOT NULL,
              name VARCHAR(25) NOT NULL,
              start DATETIME NULL,
              len INT NULL
           )
      END
      -- version 2 Add PK Au_PK
      IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_PK' AND type = 'PK')
      BEGIN
              ALTER TABLE Auction
              WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id)
      END
      -- version 3 Add UC Au_SK
      IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_SK' AND type = „UQ')
      BEGIN
             ALTER TABLE Auction
             WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name)
           END




11 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Missing/Manual

   Object Dependencies
   Intercept errors before deployment
   Don‟t loose data
   Sync DB
   Managing different versions
The foundation

      DECLARATIVE DATABASE
      DEVELOPMENT
13 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Declarative

   Define what you want in the form of a model
         Think about a table without thinking about the
          specific SQL
   Fill the model using a DSL (domain specific
    language)
         T-SQL
   Use the model as the starting point “blueprint”
    for all operations


14 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Declarative Versioning

                    -- version 1
                    CREATE TABLE dbo.Auction
                        -- version 2
                    (   CREATE TABLE dbo.Auction
                     id ( INT NOT NULL,3
                              -- version
                     name id CREATE NOT NOTdbo.Auction
                                     TABLE NULL,
                            VARCHAR(25) NULL PRIMARY KEY,
                                 INT
                              (
                     start DATETIME NULL, NOT NULL,
                          name VARCHAR(25)
                     len start NULL INT NOT NULL PRIMARY KEY,
                            INTidDATETIME NULL,
                    )          name VARCHAR(25) NOT NULL UNIQUE,
                          len    INT NULL
                               start DATETIME NULL,
                        )
                               len   INT NULL
                              )


V1        V2          V3                                      Revision History


15 | 17/11/2012 |    SQL Saturday #176 – Pordenone, Italy
Model as the starting point “blueprint”

   Deployment/publish, start by comparing the
    current state of the target with the required
    state (blueprint)
   Use the resulting difference knowledge to
    programmatically generate an deployment
    plan
   Use plan to create sequence of (SQL)
    statements required to make the target state
    become like the blueprint state
16 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Declarative Schema Deployment
17
                        Source                                      Target
                                                 Model                                   Reverse
                        Schema                                     Schema
                                                Compare                                  Engineer
                         Model                                      Model
                                                 Diff List

                                                  Plan
                                                Optimizer
              Additional
               schema
                                              Deploy Plan
               artifacts
                                                Script
                                               Generator

                                                 Script                                   Target
                                                Executor     Incremental target update     DB




17 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Imperative vs. Declarative

   Manual vs. generated / programmatic
   Point in time vs. always current
   Sequential vs. differential




18 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Model Based
          .SQL                                   SqlScript               Schema
                              Parse                Dom       Interpret            Validate
         Source                                                           Model


   All schema objects are represented inside a
    model
         What is in the model is defined by the provider
   To load/hydrate a model instance
         Parse  SqlCodeDom, based on parsers Abstract
          Syntax Tree (AST)
         Interpretation Schema Model
                Symbol list
                Object References (hard and soft dependencies)
         Validation

19 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Script Fundamentals

   Requirement to be
    able to round trip DSL                                                A

    artifacts                                                         S       T

         Script  Model
                SQL script Parse                                                  Script
                                                                      Parser
                 Script fragment                          T-SQL
                                                                                   Fragment

                Script fragment Script
                 Gen  SQL script
   Script fragment is AST
                                                            Script
                                                                          Script
                                                                          Gen       T-SQL
                                                           Fragment
    (Abstract Syntax Tree)

20 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
ScriptDom
   SQL Server 2012 managed
    parser
         Supports SQL Server 2005+
   Class TSqlXXXParser
         XXX = [80, 90, 100, 110]
   SQLDom.msi (redist x86/x64)
   Microsoft.SqlServer.TransactSql.S
    criptDom.dll
         C:Program Files (x86)Microsoft
          SQL Server110SDK
          AssembliesMicrosoft.SqlServer.Tra
          nsactSql.ScriptDom.dll
         GAC

21 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Basic ScriptDom loop

         static void Main(string[] args)
         {
              bool initialQuotedIdentifiers = false;
              TSqlParser parser = new TSql110Parser(initialQuotedIdentifiers);

                StreamReader sr = new StreamReader(@".test.sql");
                IList<ParseError> errors;

                TSqlFragment fragment = parser.Parse(sr, out errors);

                StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

                Sql110ScriptGenerator scriptGen = new Sql110ScriptGenerator();
                scriptGen.GenerateScript(fragment, sw);
         }




22 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
23




      SQL SERVER DATA TOOLS
      OVERVIEW
23 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
History of the “DataDude” Project
   Project funded April 2005
   Project started July 1st 2005
   Visual Studio 2005 Team System for Database
    Professionals
   Visual Studio 2008 Team System for Database
    Professionals
   Re-architected to be declarative model based system
   Visual Studio 2008 Team System for Database
    Professionals GDR R2
   Visual Studio 2010 Team System for Database
    Professionals
   Transitioned to SQL Server 2009
   SQL Server Data Tools

24 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Database Project
 Evolution of VS database project
    We have more things
 We don‟t have
      Data generation
      Unit testing
      Data compare
      Use a DB Project for this
         http://social.msdn.microsoft.com/Forums/en-US/ssdt/thread/33664902-
          a4e2-415a-ad4e-a480fbc56158/
    Not available in Professional or Express Edition
 Migration
    http://geekswithblogs.net/80n/archive/2012/09/11/vsdb-to-ssdt-
     series--introduction.aspx
 Comparison
DataDude Vs SSDT Comparison (1)




  http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs-
  vs2010-database-projects.aspx

26 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
DataDude Vs SSDT Comparison (2)




  http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs-
  vs2010-database-projects.aspx

27 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Supported OS Platforms

      Windows Vista SP2+
      Windows 7 SP1+
      Windows Server 2008 SP+
      Windows Server 2008 R2 SP1+

   Note: this is different then the Visual Studio
    2010 platforms


28 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Availability

   Visual Studio 2010 Integrated Shell
         SQL-CLR requires Visual Studio 2010 Standard
   Visual Studio 2010 SP1
   Visual Studio 2012
   SQL Server 2012




29 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Features of SQL Server Data Tools




30 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
                                                           03/29/2012
31




      CONNECTED DEVELOPMENT


31 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Connected Development

   SQL Server Object Explorer (SSOX)
            T-SQL Editor/Debugger/IntelliSense (New Query)
            Power-Buffer (New Object/View Code)
            Table Designer (View Designer)
            Data Editor (View Data)
            Execute Procedure/Function
   Schema Compare



32 | 03/29/2012
     17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
SQL Server Object Explorer (SSOX)
   The SQL Server navigation tool window
         Modeled after the SSMS Object Explorer
         Server scoped vs. Server Explorer which is database scoped
         Launch point for T-SQL Editor, Debugger, Object
          Execution, Designers, …
   Supports connecting directly to SQL Server
         SQL Server {2005, 2008, 2008R2, 2012} and SQL Azure
                Supports connecting directly to a (contained) database
         Constructs a partial model in the background and under the
          covers
   Supports:
         Cascading Drops and Renames
         Drift detection
                Automatically updates the tree/source as changes occur on the server


33 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
T-SQL Editor/Debugger/IntelliSense
   T-SQL IntelliSense
         SQL Server 2005+ incl. SQL Azure
   Result to Grid | Text | File
   Execution modes
         Execute
         Execute with debugger
   Reusable debug script generation




34 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Power-Buffer/Table Designer
   Declarative deferred online schema management
         Brings “project-oriented” features to online / connected
          development
         Live errors and warnings as changes are made against code
         “Project-oriented” validation during editing
   Table designer
         Code-behind designer
         Works on top of Power-Buffer (partial model) or project model
         Strives to be the same experience online as experienced in the
          project system
   Coordinated execution of buffers against the same target
         Diff scripts by default are transactional
          (ToolsOptionsSQL Server ToolsOnline EditingInclude
          transactional scripts)


35 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Data Editor

   View and Edit Data via grid editor
   Copy-Paste support
   Generate as INSERT to file or query window




36 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Execute Procedure/Function

   Dialog based input for parameter collection
         Generates SQL script for execution/debugging




37 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
38




      PROJECT BASED
      DEVELOPMENT
38 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Creating and Importing
   Single project template
         VSDB note:
                No distinction between server or user projects
                Server projects are projects with target database set to
                 master
   Import from:
           Database
           DACPAC
           SQL Script (multi-file import enabled)
           Selective import by using Schema Compare
   “Create New Project” from SSOX
         Inherits version from source database

39 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Folder Structure

   Options on import:
           None
           Schema
           Object type
           SchemaObject type




40 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Project Directory Guidelines…

   Do not host more then one table inside script
    file
         Table designer will not see additional tables
          inside script




41 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Additional Language Services
   Projects enable additional language services
         Go To Definition
         Find All References
         Refactoring
                Rename (sp_rename)
                Move to Schema (ALTER SCHEMA schema_name
                 TRANSFER)
                Wildcard Expansion
                Fully Quality Name
   Invoked from Editor, Table Designer and SQL
    Server Object Explorer for project based schema
    objects

42 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
T-SQL Static Code Analysis

   Rule set
   Suppression
         File level
         Project level
   MSBuild support




43 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Multi-Targeting

   Target version aware:
           SQL Server 2005
           SQL Server 2008 & SQL Server 2008 R2
           SQL Server 2012
           SQL Azure




44 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Isolated Sandbox

 F5 – Run by default configure to use the
  LocalDB instance associated with the project
   Data Source=(localdb)<project name>;Initial
    Catalog=<project name>;Integrated
    Security=True;Pooling=False;Connect
    Timeout=30
 To retarget to a different SQL Server version
  and/or shared SQL Server change:
   Project propertiesDebugTarget Connection
    String
SQL Server 2012 Express LocalDB
      Simplify embedded usage of SQL Server
           Simple installation
           Zero-admin database
      Same programming surface as User Instances of SQL Express
           The same sqlservr.exe as in service-based SQL Server with the same language and features
           Connection through the same client-side APIs, using a new connection string option
      SQL Server programming symmetry
      Installation similar to .NET Framework model
           One set of installed binaries (per major version), no global configuration, no constantly-
            running service
      Activation model similar to RANU (Access, SQL Compact, …)
           The application connects to a database file, SQL activates automatically
           No service: SQL process starts in the context of current user
      Default connection string
           (localdb)v11.0
      http://msdn.microsoft.com/en-us/library/hh510202(v=SQL.110).aspx




46 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Build Time Validation

   Build validates the complete model
         Platform specific validation
                Example – Enforces clustered index requirement on
                 tables in SQL Azure
         Integration with Compiler Services
                Engine-level build-time validation without schema
                 deployment
   Pre & Post Deployment scripts
         Build validates syntactical correctness of pre- and
          post- deployment scripts using the SQLCMD
          variables

47 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Build Actions
   Build - This script will be interpreted as T-SQL (or an XML
    Schema in the case of XML Schema Collections) and reflected in
    the T-SQL Model
   Compile - C# or VB (depending on your project properties) to be
    deployed as a SQLCLR assembly
   None - Use this for any loose artifacts (like text files)
   PreDeploy - The pre deployment master script (there can only be
    one)
   PostDeploy - The post deployment master script (there can only
    be one)
   RefactorLog - This is a refactor log which notifies the DaxFx
    deployment engine that particular changes should be interpreted
    as refactoring operations and not drop/adds
   Build Extension Configuration - Reserved for future use, for this
    is interpreted as None

48 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Pre & Post Deployment Scripts
   Can be used for any “arbitrary” SQL actions that you
    need to perform “before” and “after” deployment of
    the schema objects
   The pre deployment block comes after the generic
    database context validation block
   The post deployment block comes after the schema
    objects block
   Pre and post deployment scripts must be
    idempotent
         They are “executed” each deployment!
         http://blogs.msdn.com/gertd/archive/2007/01/25/idempoten
          t-scripts-required.aspx


49 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Database References
   3-part name usage:
         SELECT * FROM
          [LiteralDBRef].[Schema1].[Table1]
         SELECT *
          FROM [$(DBRef)].[Schema1].[Table1]
   4-part name usage:
         SELECT *
          FROM [$(ServerRef)].[$(DBRef)].[Schema1].[Table1]
         SELECT *
          FROM
          [$(ServerRef)].[LiteralDBRef].[Schema1].[Table1]



50 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Project Deployment

   Build serializes the model in to model.xml
    stream inside .dacpac file




51 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
52




           Schema Deployment

           SQL SERVER DATA TOOLS


           03/29/2012
Copyright © 2012 Gert Drapers - All Rights Reserved.
What is a Data-Tier Application
          (dacpac)?
           Data-Tier Application Component (DAC)
                   SQL Server database registered as Data-Tier Application
                    Component
           DAC is a self contained entity of a database used by an
            application
                   Unit of deployment and management
           Authored along side your application code
                   Compiled into a DAC package (DACPAC)
           Extracted for existing databases
                   Database extracted (DACPAC) or exported (BACPAC) into
                    packages
           Package is deployable to SQL Server and SQL Azure


     53
Copyright © 2012 Gert Drapers - All Rights Reserved.                          03/29/2012
DACFX Packages

           .dacpac - Packaged Schema representing the declarative model
            of the database
                   Not SQL, but a declarative Schema Model representation of the
                    database
                   Compiled from source code or Extracted from existing databases
                   Deploy as new database or Incremental Upgrade an existing database
                   Supports all SQL Server Objects and Types

           .bacpac - Packaged Schema and Data representing the state of
            the database
                      Composed of Schema Model with stateful properties and Data Streams
                      Exported from existing databases
                      Imported as a new database or populates an empty database
                      Supports most SQL Server Objects and Types (SQL Azure parity)



     54
Copyright © 2012 Gert Drapers - All Rights Reserved.                                  03/29/2012
DAC Framework v3.0 (DACFX)

             Core SQL Server redist component providing
              modeling, reverse engineering and
              deployment capabilities
             Managed Public API
                   Exposes verbs for DACPAC and BACPAC
                    package operations
             Command-line tool (SqlPackage.exe)
                   Executable over the managed public API

       55
Copyright © 2012 Gert Drapers - All Rights Reserved.         03/29/2012
Database Schema Snapshots

   Point-in-time representation of schema model
         Model must be “error-free” state
         Produces same file format (*.dacpac) as build or
          extract
   To be used for:
         Versioning
         Comparison
         Sharing schema definitions or changes


56 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Schema Compare

   Performs a model comparison between:
          Databases
          Projects
          DACPAC files (snapshots, build outputs, extracts)
   Supports:
          Refactoring log
          SQLCMD variables



57 | 03/29/2012
     17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Schema Definition

                                          Script
                                                             Model
                                                             Builder
                                        Fragment



                                                                          Source
                                           DB              Scaffolding    Schema
                                                                           Model



                                       Schema                Model
                                                           Deserializer
                                       Package




58 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Deployment & Schema Compare

 Script                                                                                                     Script
                       Model                                                                 Model
                       Builder                                                               Builder
Fragment                                                                                                   Fragment



                                             Source                       Target
  DB                 Scaffolding             Schema                      Schema            Scaffolding       DB
                                              Model                       Model


                                                             Model
Schema                 Model                                Compare                          Model        Schema
                     Deserializer                                                          Deserializer
Package                                                                                                   Package
                                                             Diff List

                                                              Plan               Diff
                                                            Optimizer         Visualizer

                                                        Deploy Plan

 59 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy    Script
                                                            Generator
Schema Compare                      Next and Previous move between top-
                                           level objects, no longer expand the tree.
                                                                                       Simpler set of columns are aligned around the central
                                                                                       action column echoes alignment of schemas above




  60
Group-by Action is the                                                                                                                     Same
default                                                                                                                                    column order
                                                                                                                                           is used for all
                                                                                                                                           groupings;
                                                                                                                                           cleaner and
                                                                                                                                           easier to
Schema no longer                                                                                                                           parse
used as a parent for                                                                                                                       regardless of
top-level objects; only                                                                                                                    grouping
shown when changed




Improved script diff’
algorithm for tables
emphasizes columns
as unit of change.
Gives much improved
alignment. Also
improved look




    60 | 17/11/2012 |     SQL Saturday #176 – Pordenone, Italy
Schema Compare




61 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Deployment Options

  Options to influence
   deployment behavior
        Ignore*
  Deployment validation
   options
        Do not alter Change
         Data Capture objects
        Do not ALTER replicated
         objects
        Verify deployment

                  Copyright © 2012 Gert Drapers - All Rights
62   03/29/2012
                  Reserved.
63




           SQL CLR

           SQL SERVER DATA TOOLS


           03/29/2012
Copyright © 2012 Gert Drapers - All Rights Reserved.
SQL-CLR Support

   Embedded C# or VB.NET code artifacts
         Deployed as SQL-CLR objects
   Binary assembly deployment and SQL-CLR
    object association
         Example:
                CREATE TYPE [ClrSchema].[IPv4]
                 EXTERNAL NAME [IPAssembly].[IPv4];




64 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
CLR Needs

   SQL Server CLR usage
         Geographical support
   Your needs
         Web communication
         Custom function
                String management
                Aggregate functions
         «extreme calculus» in sp
   Don‟t abuse
65 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
66




           SQL AZURE

           SQL SERVER DATA TOOLS


           03/29/2012
Copyright © 2012 Gert Drapers - All Rights Reserved.
SQL Azure

   It‟s Cloud Computing!
   SQL Server e SQL Azure sono diversi
         Diverse esigenze
   Connected development on SQL Azure
   Change targetFix & Build




67 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Conclusions

      SQL SERVER DATA TOOLS


68 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy


   Already third party tools
   First release
         Many step forward
         Some step back (compared to DataDude)




69 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Conclusions

      Modeling infrastructure
      One development environment
      More checks over actions
      Use targets
         A tool for SQL Azure
   Debug and schema deployment
   Go under TFS


70 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
Resources

   Articles
         MSDN Magazine Sept 2011 The "Juneau"
          Database Project
   SQL Server Data Tools Online Installation
         http://msdn.microsoft.com/data/tools
   Team Blog
         http://blogs.msdn.com/b/ssdt/



71 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
References

      twitter: @marco_parenzan
      email: marco.parenzan@libero.it
      blog: http://codeisvalue.wordpress.com/
      facebook: http://www.facebook.com/parenzan.marco
      linkedin: http://it.linkedin.com/in/marcoparenzan
      slideshare: http://www.slideshare.net/marco.parenzan/




72 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy
GRAZIE!           Commenta la sessione che hai
                                              appena seguito su Twitter
                                                    #sqlsat176




73 | 17/11/2012 |   SQL Saturday #176 – Pordenone, Italy

Más contenido relacionado

Similar a SQL Server Data Tools

Generating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data ModelerGenerating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data ModelerRob van den Berg
 
Declarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsDeclarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsGert Drapers
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2Eric Nelson
 
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana MandziukFwdays
 
SQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesSQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesEduardo Castro
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2ukdpe
 
Linq 1224887336792847 9
Linq 1224887336792847 9Linq 1224887336792847 9
Linq 1224887336792847 9google
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Enkitec
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with serverEugene Yokota
 
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginnersSQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginnersTobias Koprowski
 
Designing For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps SlideshareDesigning For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps SlideshareDean Willson
 
Colin\'s BI Portfolio
Colin\'s BI PortfolioColin\'s BI Portfolio
Colin\'s BI Portfoliocolinsobers
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework OverviewEric Nelson
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The EnterpriseDaniel Egan
 
Mainframe Technology Overview
Mainframe Technology OverviewMainframe Technology Overview
Mainframe Technology OverviewHaim Ben Zagmi
 
SQLUG MSBUILD SSRS Deployments
SQLUG MSBUILD SSRS DeploymentsSQLUG MSBUILD SSRS Deployments
SQLUG MSBUILD SSRS DeploymentsKoenVerbeeck
 

Similar a SQL Server Data Tools (20)

Generating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data ModelerGenerating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data Modeler
 
Declarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsDeclarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data Tools
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2
 
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
"Technical Challenges behind Visual IDE for React Components" Tetiana Mandziuk
 
SQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesSQL Server 2008 Integration Services
SQL Server 2008 Integration Services
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
 
Ow
OwOw
Ow
 
Linq 1224887336792847 9
Linq 1224887336792847 9Linq 1224887336792847 9
Linq 1224887336792847 9
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
 
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginnersSQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
 
Shrikanth
ShrikanthShrikanth
Shrikanth
 
Designing For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps SlideshareDesigning For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps Slideshare
 
r4
r4r4
r4
 
Colin\'s BI Portfolio
Colin\'s BI PortfolioColin\'s BI Portfolio
Colin\'s BI Portfolio
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The Enterprise
 
Mainframe Technology Overview
Mainframe Technology OverviewMainframe Technology Overview
Mainframe Technology Overview
 
SQLUG MSBUILD SSRS Deployments
SQLUG MSBUILD SSRS DeploymentsSQLUG MSBUILD SSRS Deployments
SQLUG MSBUILD SSRS Deployments
 

Más de Marco Parenzan

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerMarco Parenzan
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxMarco Parenzan
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Marco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralMarco Parenzan
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and AzureMarco Parenzan
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralMarco Parenzan
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogameMarco Parenzan
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Marco Parenzan
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETMarco Parenzan
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsMarco Parenzan
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetMarco Parenzan
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .netMarco Parenzan
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .netMarco Parenzan
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicMarco Parenzan
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTMarco Parenzan
 

Más de Marco Parenzan (20)

Azure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineerAzure IoT Central per lo SCADA engineer
Azure IoT Central per lo SCADA engineer
 
Azure Hybrid @ Home
Azure Hybrid @ HomeAzure Hybrid @ Home
Azure Hybrid @ Home
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
 
Azure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT SolutionsAzure Synapse Analytics for your IoT Solutions
Azure Synapse Analytics for your IoT Solutions
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
Math with .NET for you and Azure
Math with .NET for you and AzureMath with .NET for you and Azure
Math with .NET for you and Azure
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
 
.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame.net for fun: write a Christmas videogame
.net for fun: write a Christmas videogame
 
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
 
Anomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NETAnomaly Detection with Azure and .NET
Anomaly Detection with Azure and .NET
 
Deploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data SolutionsDeploy Microsoft Azure Data Solutions
Deploy Microsoft Azure Data Solutions
 
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnetDeep Dive Time Series Anomaly Detection in Azure with dotnet
Deep Dive Time Series Anomaly Detection in Azure with dotnet
 
Azure IoT Central
Azure IoT CentralAzure IoT Central
Azure IoT Central
 
Anomaly Detection with Azure and .net
Anomaly Detection with Azure and .netAnomaly Detection with Azure and .net
Anomaly Detection with Azure and .net
 
Code Generation for Azure with .net
Code Generation for Azure with .netCode Generation for Azure with .net
Code Generation for Azure with .net
 
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magicRunning Kafka and Spark on Raspberry PI with Azure and some .net magic
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETT
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

SQL Server Data Tools

  • 1. 1 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 2. SQL Saturday #176 Pordenone, Italy SQL Server Data Tools 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 3. #sqlsat176 3 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 4. Marco Parenzan  .NET Developer, SQL User  1nn0va Speaker (www.innovazionefvg.net)  Trainer and consultant on application development in companies and in University (of Trieste)  Head of Development in CGN S.P.A. (www.cgn.it) 4 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 5. The Developer‟s experience DATABASE DEVELOPMENT 5 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 6. Database Development  Often not integrated into application life cycle management and processes  What is a database development experience?  Install SSMS into developer machine….  It‟s an «admin» tool  Outside Visual Studio (it‟s Visual Studio yes)  Third party tools…  What does »deployment» means? 6 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 7. The premise IMPERATIVE DATABASE DEVELOPMENT 7 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 8. Database Development Challenges  Databases are inherently stateful  Focus is on ALTER instead of CREATE  Dependencies complicate scripts  Errors are often found only when scripts are executed  Synchronizing application and database versions  Targeting different SQL Server and SQL Azure versions 8 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 9. Simple Schema Versioning Example -- version 1 CREATE TABLE dbo.Speakers ( SpeakerId INT NOT NULL, FirstName NVARCHAR(64) NOT NULL, LastName NVARCHAR(64) NOT NULL, ) -- version 2 -- version 3 ALTER TABLE dbo.Speakers ALTER TABLE dbo.Speakers WITH CHECK ADD CONSTRAINT WITH CHECK Speaker_PK ADD CONSTRAINT Speaker_PK UNIQUE (LastName, FirstName) V1 V2 V3 Revision History 9 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 10. Imperative  Imperative scripts hard codes knowledge about:  The state of the target system:  Presence of objects, dependencies, unbinding, rebinding  Required ordering of operations  Cumulative changes need to be serialized  v1v2v3v4v5 instead of v1v4v5  Validating the end-result against expected end-state is hard  No easy way to compare expected vs. actual  Batching or separating multiple changes  There are third party tools 10 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 11. Imperative Versioning  -- version 1 Add table dbo.Auction  IF OBJECT_ID (N'dbo.Auction', N'U') IS NULL  BEGIN  CREATE TABLE dbo.Auction  (`  id INT NOT NULL,  name VARCHAR(25) NOT NULL,  start DATETIME NULL,  len INT NULL  )  END  -- version 2 Add PK Au_PK  IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_PK' AND type = 'PK')  BEGIN  ALTER TABLE Auction  WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id)  END  -- version 3 Add UC Au_SK  IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_SK' AND type = „UQ')  BEGIN  ALTER TABLE Auction  WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name)  END 11 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 12. Missing/Manual  Object Dependencies  Intercept errors before deployment  Don‟t loose data  Sync DB  Managing different versions
  • 13. The foundation DECLARATIVE DATABASE DEVELOPMENT 13 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 14. Declarative  Define what you want in the form of a model  Think about a table without thinking about the specific SQL  Fill the model using a DSL (domain specific language)  T-SQL  Use the model as the starting point “blueprint” for all operations 14 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 15. Declarative Versioning -- version 1 CREATE TABLE dbo.Auction -- version 2 ( CREATE TABLE dbo.Auction id ( INT NOT NULL,3 -- version name id CREATE NOT NOTdbo.Auction TABLE NULL, VARCHAR(25) NULL PRIMARY KEY, INT ( start DATETIME NULL, NOT NULL, name VARCHAR(25) len start NULL INT NOT NULL PRIMARY KEY, INTidDATETIME NULL, ) name VARCHAR(25) NOT NULL UNIQUE, len INT NULL start DATETIME NULL, ) len INT NULL ) V1 V2 V3 Revision History 15 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 16. Model as the starting point “blueprint”  Deployment/publish, start by comparing the current state of the target with the required state (blueprint)  Use the resulting difference knowledge to programmatically generate an deployment plan  Use plan to create sequence of (SQL) statements required to make the target state become like the blueprint state 16 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 17. Declarative Schema Deployment 17 Source Target Model Reverse Schema Schema Compare Engineer Model Model Diff List Plan Optimizer Additional schema Deploy Plan artifacts Script Generator Script Target Executor Incremental target update DB 17 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 18. Imperative vs. Declarative  Manual vs. generated / programmatic  Point in time vs. always current  Sequential vs. differential 18 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 19. Model Based .SQL SqlScript Schema Parse Dom Interpret Validate Source Model  All schema objects are represented inside a model  What is in the model is defined by the provider  To load/hydrate a model instance  Parse  SqlCodeDom, based on parsers Abstract Syntax Tree (AST)  Interpretation Schema Model  Symbol list  Object References (hard and soft dependencies)  Validation 19 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 20. Script Fundamentals  Requirement to be able to round trip DSL A artifacts S T  Script  Model  SQL script Parse Script Parser Script fragment T-SQL Fragment  Script fragment Script Gen  SQL script  Script fragment is AST Script Script Gen T-SQL Fragment (Abstract Syntax Tree) 20 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 21. ScriptDom  SQL Server 2012 managed parser  Supports SQL Server 2005+  Class TSqlXXXParser  XXX = [80, 90, 100, 110]  SQLDom.msi (redist x86/x64)  Microsoft.SqlServer.TransactSql.S criptDom.dll  C:Program Files (x86)Microsoft SQL Server110SDK AssembliesMicrosoft.SqlServer.Tra nsactSql.ScriptDom.dll  GAC 21 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 22. Basic ScriptDom loop static void Main(string[] args) { bool initialQuotedIdentifiers = false; TSqlParser parser = new TSql110Parser(initialQuotedIdentifiers); StreamReader sr = new StreamReader(@".test.sql"); IList<ParseError> errors; TSqlFragment fragment = parser.Parse(sr, out errors); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()); Sql110ScriptGenerator scriptGen = new Sql110ScriptGenerator(); scriptGen.GenerateScript(fragment, sw); } 22 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 23. 23 SQL SERVER DATA TOOLS OVERVIEW 23 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 24. History of the “DataDude” Project  Project funded April 2005  Project started July 1st 2005  Visual Studio 2005 Team System for Database Professionals  Visual Studio 2008 Team System for Database Professionals  Re-architected to be declarative model based system  Visual Studio 2008 Team System for Database Professionals GDR R2  Visual Studio 2010 Team System for Database Professionals  Transitioned to SQL Server 2009  SQL Server Data Tools 24 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 25. Database Project  Evolution of VS database project  We have more things  We don‟t have  Data generation  Unit testing  Data compare  Use a DB Project for this  http://social.msdn.microsoft.com/Forums/en-US/ssdt/thread/33664902- a4e2-415a-ad4e-a480fbc56158/  Not available in Professional or Express Edition  Migration  http://geekswithblogs.net/80n/archive/2012/09/11/vsdb-to-ssdt- series--introduction.aspx  Comparison
  • 26. DataDude Vs SSDT Comparison (1) http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs- vs2010-database-projects.aspx 26 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 27. DataDude Vs SSDT Comparison (2) http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vs- vs2010-database-projects.aspx 27 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 28. Supported OS Platforms  Windows Vista SP2+  Windows 7 SP1+  Windows Server 2008 SP+  Windows Server 2008 R2 SP1+  Note: this is different then the Visual Studio 2010 platforms 28 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 29. Availability  Visual Studio 2010 Integrated Shell  SQL-CLR requires Visual Studio 2010 Standard  Visual Studio 2010 SP1  Visual Studio 2012  SQL Server 2012 29 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 30. Features of SQL Server Data Tools 30 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy 03/29/2012
  • 31. 31 CONNECTED DEVELOPMENT 31 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 32. Connected Development  SQL Server Object Explorer (SSOX)  T-SQL Editor/Debugger/IntelliSense (New Query)  Power-Buffer (New Object/View Code)  Table Designer (View Designer)  Data Editor (View Data)  Execute Procedure/Function  Schema Compare 32 | 03/29/2012 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 33. SQL Server Object Explorer (SSOX)  The SQL Server navigation tool window  Modeled after the SSMS Object Explorer  Server scoped vs. Server Explorer which is database scoped  Launch point for T-SQL Editor, Debugger, Object Execution, Designers, …  Supports connecting directly to SQL Server  SQL Server {2005, 2008, 2008R2, 2012} and SQL Azure  Supports connecting directly to a (contained) database  Constructs a partial model in the background and under the covers  Supports:  Cascading Drops and Renames  Drift detection  Automatically updates the tree/source as changes occur on the server 33 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 34. T-SQL Editor/Debugger/IntelliSense  T-SQL IntelliSense  SQL Server 2005+ incl. SQL Azure  Result to Grid | Text | File  Execution modes  Execute  Execute with debugger  Reusable debug script generation 34 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 35. Power-Buffer/Table Designer  Declarative deferred online schema management  Brings “project-oriented” features to online / connected development  Live errors and warnings as changes are made against code  “Project-oriented” validation during editing  Table designer  Code-behind designer  Works on top of Power-Buffer (partial model) or project model  Strives to be the same experience online as experienced in the project system  Coordinated execution of buffers against the same target  Diff scripts by default are transactional (ToolsOptionsSQL Server ToolsOnline EditingInclude transactional scripts) 35 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 36. Data Editor  View and Edit Data via grid editor  Copy-Paste support  Generate as INSERT to file or query window 36 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 37. Execute Procedure/Function  Dialog based input for parameter collection  Generates SQL script for execution/debugging 37 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 38. 38 PROJECT BASED DEVELOPMENT 38 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 39. Creating and Importing  Single project template  VSDB note:  No distinction between server or user projects  Server projects are projects with target database set to master  Import from:  Database  DACPAC  SQL Script (multi-file import enabled)  Selective import by using Schema Compare  “Create New Project” from SSOX  Inherits version from source database 39 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 40. Folder Structure  Options on import:  None  Schema  Object type  SchemaObject type 40 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 41. Project Directory Guidelines…  Do not host more then one table inside script file  Table designer will not see additional tables inside script 41 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 42. Additional Language Services  Projects enable additional language services  Go To Definition  Find All References  Refactoring  Rename (sp_rename)  Move to Schema (ALTER SCHEMA schema_name TRANSFER)  Wildcard Expansion  Fully Quality Name  Invoked from Editor, Table Designer and SQL Server Object Explorer for project based schema objects 42 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 43. T-SQL Static Code Analysis  Rule set  Suppression  File level  Project level  MSBuild support 43 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 44. Multi-Targeting  Target version aware:  SQL Server 2005  SQL Server 2008 & SQL Server 2008 R2  SQL Server 2012  SQL Azure 44 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 45. Isolated Sandbox  F5 – Run by default configure to use the LocalDB instance associated with the project  Data Source=(localdb)<project name>;Initial Catalog=<project name>;Integrated Security=True;Pooling=False;Connect Timeout=30  To retarget to a different SQL Server version and/or shared SQL Server change:  Project propertiesDebugTarget Connection String
  • 46. SQL Server 2012 Express LocalDB  Simplify embedded usage of SQL Server  Simple installation  Zero-admin database  Same programming surface as User Instances of SQL Express  The same sqlservr.exe as in service-based SQL Server with the same language and features  Connection through the same client-side APIs, using a new connection string option  SQL Server programming symmetry  Installation similar to .NET Framework model  One set of installed binaries (per major version), no global configuration, no constantly- running service  Activation model similar to RANU (Access, SQL Compact, …)  The application connects to a database file, SQL activates automatically  No service: SQL process starts in the context of current user  Default connection string  (localdb)v11.0  http://msdn.microsoft.com/en-us/library/hh510202(v=SQL.110).aspx 46 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 47. Build Time Validation  Build validates the complete model  Platform specific validation  Example – Enforces clustered index requirement on tables in SQL Azure  Integration with Compiler Services  Engine-level build-time validation without schema deployment  Pre & Post Deployment scripts  Build validates syntactical correctness of pre- and post- deployment scripts using the SQLCMD variables 47 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 48. Build Actions  Build - This script will be interpreted as T-SQL (or an XML Schema in the case of XML Schema Collections) and reflected in the T-SQL Model  Compile - C# or VB (depending on your project properties) to be deployed as a SQLCLR assembly  None - Use this for any loose artifacts (like text files)  PreDeploy - The pre deployment master script (there can only be one)  PostDeploy - The post deployment master script (there can only be one)  RefactorLog - This is a refactor log which notifies the DaxFx deployment engine that particular changes should be interpreted as refactoring operations and not drop/adds  Build Extension Configuration - Reserved for future use, for this is interpreted as None 48 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 49. Pre & Post Deployment Scripts  Can be used for any “arbitrary” SQL actions that you need to perform “before” and “after” deployment of the schema objects  The pre deployment block comes after the generic database context validation block  The post deployment block comes after the schema objects block  Pre and post deployment scripts must be idempotent  They are “executed” each deployment!  http://blogs.msdn.com/gertd/archive/2007/01/25/idempoten t-scripts-required.aspx 49 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 50. Database References  3-part name usage:  SELECT * FROM [LiteralDBRef].[Schema1].[Table1]  SELECT * FROM [$(DBRef)].[Schema1].[Table1]  4-part name usage:  SELECT * FROM [$(ServerRef)].[$(DBRef)].[Schema1].[Table1]  SELECT * FROM [$(ServerRef)].[LiteralDBRef].[Schema1].[Table1] 50 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 51. Project Deployment  Build serializes the model in to model.xml stream inside .dacpac file 51 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 52. 52 Schema Deployment SQL SERVER DATA TOOLS 03/29/2012 Copyright © 2012 Gert Drapers - All Rights Reserved.
  • 53. What is a Data-Tier Application (dacpac)?  Data-Tier Application Component (DAC)  SQL Server database registered as Data-Tier Application Component  DAC is a self contained entity of a database used by an application  Unit of deployment and management  Authored along side your application code  Compiled into a DAC package (DACPAC)  Extracted for existing databases  Database extracted (DACPAC) or exported (BACPAC) into packages  Package is deployable to SQL Server and SQL Azure 53 Copyright © 2012 Gert Drapers - All Rights Reserved. 03/29/2012
  • 54. DACFX Packages  .dacpac - Packaged Schema representing the declarative model of the database  Not SQL, but a declarative Schema Model representation of the database  Compiled from source code or Extracted from existing databases  Deploy as new database or Incremental Upgrade an existing database  Supports all SQL Server Objects and Types  .bacpac - Packaged Schema and Data representing the state of the database  Composed of Schema Model with stateful properties and Data Streams  Exported from existing databases  Imported as a new database or populates an empty database  Supports most SQL Server Objects and Types (SQL Azure parity) 54 Copyright © 2012 Gert Drapers - All Rights Reserved. 03/29/2012
  • 55. DAC Framework v3.0 (DACFX)  Core SQL Server redist component providing modeling, reverse engineering and deployment capabilities  Managed Public API  Exposes verbs for DACPAC and BACPAC package operations  Command-line tool (SqlPackage.exe)  Executable over the managed public API 55 Copyright © 2012 Gert Drapers - All Rights Reserved. 03/29/2012
  • 56. Database Schema Snapshots  Point-in-time representation of schema model  Model must be “error-free” state  Produces same file format (*.dacpac) as build or extract  To be used for:  Versioning  Comparison  Sharing schema definitions or changes 56 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 57. Schema Compare  Performs a model comparison between:  Databases  Projects  DACPAC files (snapshots, build outputs, extracts)  Supports:  Refactoring log  SQLCMD variables 57 | 03/29/2012 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 58. Schema Definition Script Model Builder Fragment Source DB Scaffolding Schema Model Schema Model Deserializer Package 58 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 59. Deployment & Schema Compare Script Script Model Model Builder Builder Fragment Fragment Source Target DB Scaffolding Schema Schema Scaffolding DB Model Model Model Schema Model Compare Model Schema Deserializer Deserializer Package Package Diff List Plan Diff Optimizer Visualizer Deploy Plan 59 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy Script Generator
  • 60. Schema Compare Next and Previous move between top- level objects, no longer expand the tree. Simpler set of columns are aligned around the central action column echoes alignment of schemas above 60 Group-by Action is the Same default column order is used for all groupings; cleaner and easier to Schema no longer parse used as a parent for regardless of top-level objects; only grouping shown when changed Improved script diff’ algorithm for tables emphasizes columns as unit of change. Gives much improved alignment. Also improved look 60 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 61. Schema Compare 61 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 62. Deployment Options  Options to influence deployment behavior  Ignore*  Deployment validation options  Do not alter Change Data Capture objects  Do not ALTER replicated objects  Verify deployment Copyright © 2012 Gert Drapers - All Rights 62 03/29/2012 Reserved.
  • 63. 63 SQL CLR SQL SERVER DATA TOOLS 03/29/2012 Copyright © 2012 Gert Drapers - All Rights Reserved.
  • 64. SQL-CLR Support  Embedded C# or VB.NET code artifacts  Deployed as SQL-CLR objects  Binary assembly deployment and SQL-CLR object association  Example:  CREATE TYPE [ClrSchema].[IPv4] EXTERNAL NAME [IPAssembly].[IPv4]; 64 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 65. CLR Needs  SQL Server CLR usage  Geographical support  Your needs  Web communication  Custom function  String management  Aggregate functions  «extreme calculus» in sp  Don‟t abuse 65 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 66. 66 SQL AZURE SQL SERVER DATA TOOLS 03/29/2012 Copyright © 2012 Gert Drapers - All Rights Reserved.
  • 67. SQL Azure  It‟s Cloud Computing!  SQL Server e SQL Azure sono diversi  Diverse esigenze  Connected development on SQL Azure  Change targetFix & Build 67 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 68. Conclusions SQL SERVER DATA TOOLS 68 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 69.   Already third party tools  First release  Many step forward  Some step back (compared to DataDude) 69 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 70. Conclusions  Modeling infrastructure  One development environment  More checks over actions  Use targets  A tool for SQL Azure  Debug and schema deployment  Go under TFS 70 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 71. Resources  Articles  MSDN Magazine Sept 2011 The "Juneau" Database Project  SQL Server Data Tools Online Installation  http://msdn.microsoft.com/data/tools  Team Blog  http://blogs.msdn.com/b/ssdt/ 71 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 72. References  twitter: @marco_parenzan  email: marco.parenzan@libero.it  blog: http://codeisvalue.wordpress.com/  facebook: http://www.facebook.com/parenzan.marco  linkedin: http://it.linkedin.com/in/marcoparenzan  slideshare: http://www.slideshare.net/marco.parenzan/ 72 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy
  • 73. GRAZIE! Commenta la sessione che hai appena seguito su Twitter #sqlsat176 73 | 17/11/2012 | SQL Saturday #176 – Pordenone, Italy

Notas del editor

  1. Developer-focused toolset for building SQL Server &amp; SQL Azure databasesExperiences EnabledConnected DevelopmentProject Based DevelopmentApplication Lifecycle &amp; ToolsFundamentalsDeclarative, model based database developmentIntegrated tools with modern language services Connected and offline with local testingTarget SQL Server and SQL AzureDetecting and managing database drift
  2. Schema Compare is an incredibly useful tool, providing a visual head over SSDT’s model differencing and update engine. It can be used to compare any combination of database, project or dacpac, and allows selective update of the target schema (via an update script in the case of a dacpac). We’ve made some significant changes to the tool for the RTW release, improving its look and feel, particularly to make it easier to digest and process comparison results. This post describes many of Schema Compare&apos;s key features – some of which surfaced in CTP4 – with a screen shot at the bottom that highlights several of them.First, the visual comparison ‘language’ of the results grid:Differences-Only by Default: By default the grid contains differences only (with empty folders removed) – if there is only one difference you will see just one item. And the grid always contains all the actions resulting from the comparison – while you can hide an action temporarily within a contracted group it is always present in the grid and will apply to the update or script unless you exclude it by unchecking the action.Equal Objects filter:A toolbar button adds equal objects to the grid. Enabling this is useful if you want to review, for example, unchanged columns alongside the changed columns in a table. Unsupported Actions filter: You can also choose to see unsupported actions – these result from differences for which there is no supported action that can be taken on the target. These typically result from differences in server objects or built-in types between schema versions.Action Icons: Actions (Add, Change, and Delete) are visualized using icons, making it easier to absorb a set of changes at a glance. The checkbox alongside an icon indicates if the action will be included in the update or generated script. If there is no icon the item will not be included in an update or script.Grayed Items: Items that do not contribute to the update are grayed – excluded actions, unsupported actions and equal objects are all grayed. Folders are grayed when all their contents are grayed making it easy to see when a group of differences have all been excluded without you needing to drill in.Grouping: By default, items are grouped by action so you can quickly assess what changes will be made on update. You can also group the results by object type or by schema. You can expand or collapse a group to temporarily hide detail, and you can exclude all or include all objects in a group.Refactor Highlighting: Schema Compare processes the refactor log if present when targeting a database. Refactoring is indicated in the grid as a change action with the source name bolded to highlight the new schema and/or name. Refactoring will cause objects to be renamed in the database. Refactoring sometimes also shows up as a second order effect on other objects that SQL Server will modify when applying the rename. These will not be marked as actions in the grid as you cannot exclude them, but you will see the changed script if you select the affected object. Probably the biggest set of changes affects the script difference pane. While the grid provides a great overview, to see all changes to an object in the grid you have to fully expand it, which, can quickly clutter the view if you&apos;re reviewing many objects. To address this we’ve focused more attention on the script differencing experience – after all, you are writing and editing object scripts to begin with. Changes include:Expanded Object Scripts: The script difference pane now shows the combined scripts for an object and its hierarchical children. This gives a complete picture of all the changes affecting an object in one easy-to-scan place. To complement this, the Next and Previous buttons step between top-level objects only. Together, these two changes can dramatically simplify scanning through the results of a comparison. Enhanced Script Differencing: The script difference algorithm now treats child objects as discrete entities, more effectively highlighting those that have been added, deleted or changed. The color scheme is now more subtle and better reinforces the direction of changes. And remember that you can expand the script pane or swap it to the top – so you can easily optimize the layout to better focus on reviewing scripts.The screen shot below highlights many of these improvements.