Table of contents : Chapter 1: Data Types Number Data Types Exact Number Data Types Approximate Number Data Types Converting Number Data Types String Data Types Character String Data Types Unicode String Data Types Binary String Data Types Collation for Data Types Date and Time Data Types DATE TIME SMALLDATETIME, DATETIME, DATETIME2, and DATETIMEOFFSET Other Data Types UNIQUEIDENTIFIER XML Spatial Geometry Types Spatial Geography Types SQL_VARIANT ROWVERSION HIERARCHYID Table Cursor Chapter 2: Database Objects Views User-Defined Views Indexed View Functions Scalar Functions Table-Valued Functions Other User-Defined Objects User-Defined Table Types Table-Valued Parameters Common Table Expressions Temporary Objects Temporary Tables Table Variables Temporary Stored Procedures Triggers Logon Triggers Data Definition Language Triggers Data Manipulation Language Triggers Cursors Forward-Only Cursors Static Cursors Keyset Cursors Dynamic Cursors Chapter 3: Standardizing T-SQL Formatting T-SQL Naming T-SQL Commenting T-SQL Chapter 4: Designing T-SQL Using Stored Procedures Using Parameters Using Complex Logic Chapter 5: Set-Based Design Introducing Set-Based Design Understanding Data Retrieval Thinking in Data Sets Identifying Data Sets Using Data Sets Writing Code for Data Sets Chapter 6: Hardware Usage Considering Memory with T-SQL Design Considering Storage with T-SQL Design Considering CPU with T-SQL Design Chapter 7: Execution Plans Introducing Execution Plans Reading Execution Plans Index Usage in Execution Plans Logical Join Types in Execution Plans Chapter 8: Optimizing Databases for T-SQL Using Query Store Optimizing Logical Reads Optimizing Duration Optimizing Indexes Automatic Database Tuning Automatic Plan Correction Automatic Index Management Intelligent Query Processing Memory Grant Feedback Batch Mode on Rowstore Adaptive Joins Chapter 9: Coding Standards Why Use Coding Standards What to Include in Coding Standards T-SQL Design T-SQL Performance T-SQL Usability Chapter 10: Source Control Reasons to Use Source Control How to Use Source Control Rollback Changes Setting Up Source Control Chapter 11: Testing Unit Testing Integration Testing Load Testing Static Code Analysis Chapter 12: Deployment Methodology Types of Deployment Styles of Development Feature Flags Automated Deployment Chapter 13: Functionality Inserting and Updating Data Disable Functionality Supporting Legacy Code Reporting on Transactional Data Dynamic SQL Chapter 14: Logging Data Modification Error Handling Chapter 15: Enhancement Adding New Functionality Application Rules Feature Flags Phasing Out Old Technology Chapter 16: Managing Data Growth Partitioning Partition Foundation Partitioned Tables Partitioned Views Hybrid Workloads Chapter 17: Managing Data Long-Term Data Retention and Archival Switching Partitions Sliding Window Partition Chapter 18: Implementing Security Features Data Discovery and Classification Data Discovery and Classification in SQL Server Data Discovery and Classification in Azure Dynamic Data Masking Row-Level Security Ledger Chapter 19: Implementing Encryption Always Encrypted Transparent Data Encryption Index