Section 4 delves into the more advanced SQL skills, beginning with a discussion of views ("An introduction to views", "How to create and manage views", "How to use views", "How to use the View Designer"), then covering scripts ("An introduction to scripts", "How to work with variables and temporary tables", "How to control the execution of a script", "Advanced scripting techniques").
Next, the meat of SQL Server database functionality is detailed, beginning with stored procedures, user-defined functions, and triggers. The use of cursors is covered next ("How to use cursors in SQL", "How to use cursors to retrieve data", "How to modify the data through a cursor", "Additional cursor processing techniques"). As stated by the authors in the text about cursors, client-side cursors are not discussed even through they are the preferred method of implementing cursor functionality when given a choice. Covering server-side cursors, however, provides the reader with a good foundation for understanding the important concepts related to use of cursors, which will enable them to better understand the client-side implementation of the same concepts.
From cursors the authors move on to discuss the crucial concept of transaction management and record locking ("How to work with transactions", "An introduction to concurrency and locking", "How SQL Server manages locking"). This chapter is well phrased, which is important given the importance of the concept being covered. The authors also complete the chapter by explaining deadlocks and how to prevent them.
Database security is the next topic, where the different conceptual options for implementing security are discussed ("How to work with SQL Server login IDs", "How to work with permissions", "How to work with roles") followed by a description of how to implement security using the SQL Server Management Studio application ("How to manage security using the Management Studio").
The final topic in this section is the integration of Xml in SQL Server databases ("An introduction to Xml", "How to work with the Xml data type", "How to work with Xml schemas"). This section briefly explains Xml, Xml Schema, and XQuery (Xpath) before explaning how each is used to interact with Xml columns in an SQL Server database (or generate Xml result sets from relational data), but a previous understanding of Xml is quite necessary to get the most out of these pages (as a detailed explanation of Xml is quite outside the scope of the book).
Walkthrough: Section 5
The final section of the book covers integration of the .NET CLR (Common Language Runtime) with SQL Server to extend the features available to developers through SQL and DDL. The section begins with an overview of the integration of the CLR with SQL Server, including how to use Visual Studio to work with CLR objects and how to deploy CLR assemblies for use by SQL Server.
Next, specific examples of how to use the CLR to write stored procedures, functions, and triggers are given, including detailed explanations of the differences between writing standard CLR code and SQL Server 2005-integrated CLR code. Lastly, CLR aggregate functions and user-defined types are discussed.
Summary
SQL Server 2005 for Developers by Bryan Syverson and Joel Murach is a comprehensive tutorial that properly introduces beginner developers or programmers new to SQL Server 2005 to the gamut of language, management and concepts surrounding the SQL Server 2005 database. The book is specifically targeted to developers who wish to be able to master SQL Server 2004, and after reading the book most developers should have a grasp of just about every concept and feature required to work with SQL Server, including those new to this version (such as Xml data types and CLR integration). Some (albiet more obscure) concepts and features are left out entirely (like cryptography functions), but that does nothing to adversely affect the length of the book (it weighs in at nearly 700 pages).
The tone of the book and its organization and paired page layout are very conducive to learning at any level, and the topics covered are varied enough to ensure a well-rounded learning experience, regardless of the reader's development background.