My current goal is to become a Microsoft Certified Solutions Expert: Business Intelligence.

Preparing for the exam

I plan to work through each chapter in the Training Kit book. I will read each chapter, answer the quick check questions, and the lesson review questions, work through the case scenarios and complete all the practice exercises.

I will also be watching some YouTube videos and the Udemy course Microsoft SQL Server 2012 Certification Training Exam 70-461 by Infinite Skills as I have read some positive things about it.

I will NOT be completing the practice tests that came with the book because I have read they are completely useless as they are not on the level of the Microsoft exam.

Skills Required

The 70-461 exam is comprised of questions from the below area:

  • Create database objects (20–25%)
  • Work with data (25–30%)
  • Modify data (20–25%)
  • Troubleshoot and optimize (25–30%)

Create database objects (20–25%)

  • Create and alter tables using T-SQL syntax (simple statements)
  • Create tables without using the built-in tools; ALTER; DROP; ALTER COLUMN; CREATE
  • Create and alter views (simple statements)
  • Create indexed views; create views without using the built-in tools; CREATE, ALTER, DROP
  • Design views
  • Ensure code non-regression by keeping consistent signatures for procedure, views, and function (interfaces); security implications
  • Create and modify constraints (simple statements)
  • Create constraints on tables; define constraints; unique constraints; default constraints; primary and foreign key constraints
  • Create and alter DML triggers
  • Inserted and deleted tables; nested triggers; types of triggers; update functions; handle multiple rows in a session; performance implications of triggers

Preparation resources

Work with data (25–30%)

  • Query data by using SELECT statements
  • Use the ranking function to select top(X) rows for multiple categories in a single query; write and perform queries efficiently using the new (SQL 2005/8->) code items such as synonyms, and joins (except, intersect); implement logic which uses dynamic SQL and system metadata; write efficient, technically complex SQL queries, including all types of joins versus the use of derived tables; determine what code may or may not execute based on the tables provided; given a table with constraints, determine which statement set would load a table; use and understand different data access technologies; case versus IsNull versus coalesce
  • Implement sub-queries
  • Identify problematic elements in query plans; pivot and unpivot; apply operator; cte statement; with statement
  • Implement data types
  • Use appropriate data; understand the uses and limitations of each data type; impact of GUID (newid, newsequentialid) on database performance, when to use what data type for columns
  • Implement aggregate queries
  • New analytic functions; grouping sets; spatial aggregates; apply ranking functions
  • Query and manage XML data
  • Understand XML datatypes and their schemas and interop w/, limitations and restrictions; implement XML schemas and handling of XML data; XML data: how to handle it in SQL Server and when and when not to use it, including XML namespaces; import and export XML; XML indexing

Preparation resources

Modify data (20–25%)

  • Create and alter stored procedures (simple statements)
  • Write a stored procedure to meet a given set of requirements; branching logic; create stored procedures and other programmatic objects; techniques for developing stored procedures; different types of storeproc result; create a stored procedure for data access layer; program stored procedures, triggers, functions with T-SQL
  • Modify data by using INSERT, UPDATE, and DELETE statements
  • Given a set of code with defaults, constraints, and triggers, determine the output of a set of DDL; know which SQL statements are best to solve common requirements; use output statement
  • Combine datasets
  • Difference between UNION and UNION all; case versus IsNull versus coalesce; modify data by using MERGE statements
  • Work with functions
  • Understand deterministic, and non-deterministic functions; scalar and table values; apply built-in scalar functions; create and alter user-defined functions (UDFs)

Preparation resources

Troubleshoot and optimize (25–30%)

  • Optimize queries
  • Understand statistics; read query plans; plan guides; DMVs; hints; statistics IO; dynamic vs. parameterized queries; describe the different join types (HASH, MERGE, LOOP) and describe the scenarios they would be used in
  • Manage transactions
  • Mark a transaction; understand begin tran, commit, and rollback; implicit vs explicit transactions; isolation levels; scope and type of locks; trancount
  • Evaluate the use of row-based operations vs. set-based operations
  • When to use cursors; impact of scalar UDFs; combine multiple DML operations
  • Implement error handling
  • Implement try/catch/throw; use set based rather than row based logic; transaction management

Preparation resources

Preparing for the real world

Getting better with SQL is kind of hard to do on your own. You really need real-world business cases to understand how to manipulate actual data.

But for an entry/mid-level job, these things are really important and will help you on interviews:

  1. Understanding all the joins (specifically inner, outer, left, and right)
  2. sub-queries, derived tables
  3. exists, not exists, except, in, not in
  4. group by, having clause
  5. row number() , dense rank()
  6. clustered and non-clustered indexes
  7. temp tables (global vs local)
  8. Stored Procedures, Functions,
  9. Variables
  10. While loops
  11. try/catch blocks and general error handling
  12. wild cards