Simpo PDF Merge and Split Unregistered Version -
ii
Microsoft SQL Server 2000 Programming by Example
Copyright © 2001 by Que® Corporation
All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or
transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise,
without written permission from the publisher. No patent liability is assumed with respect to
the use of the information contained herein. Although every precaution has been taken in the
preparation of this book, the publisher and author assume no responsibility for errors or
omissions. Nor is any liability assumed for damages resulting from the use of the information
contained herein.
Library of Congress Catalog Card Number: 00-111702
Printed in the United States of America
First Printing: April, 2001
04 03 02 01 4 3 2 1
Trademarks
All terms mentioned in this book that are known to be trademarks or service marks have been
appropriately capitalized. Que Corporation cannot attest to the accuracy of this information.
Use of a term in this book should not be regarded as affecting the validity of any trademark or
service mark.
Microsoft is a registered trademark of Microsoft Corporation.
SQL Server is a trademark of Microsoft Corporation.
Warning and Disclaimer
Every effort has been made to make this book as complete and as accurate as possible, but
no warranty or fitness is implied. The information provided is on an "as is" basis. The authors
and the publisher shall have neither liability nor responsibility to any person or entity with
respect to any loss or damages arising from the information contained in this book or from the
use of the CD or programs accompanying it.
Credits
Acquisitions Editor
Michelle Newcomb
— Carlos Eduardo Rojas
To Manuela, for being my wife, my confidant, my shelter, my partner, warmth
for my winters, and refreshing breeze for my summers.
— Fernando Guerrero
Simpo PDF Merge and Split Unregistered Version -
Simpo PDF Merge and Split Unregistered Version -
About the Authors
v
About the Authors
Carlos Eduardo Rojasis a program manager with Planeta Networks, an Internet company headquartered in
Coral Gables, Florida that provides broadband applications to Internet service providers in Ibero-America. He
specializes in the design of n-tier applications, database implementation, and administration of SQL Server
databases. Prior to this role, he was a consultant and trainer with Manapro in Caracas, Venezuela, where he
is originally from. Also, he has participated as a speaker in various TechNet conferences in Venezuela.
Carlos earned a B.S. degree in Computer Science from University Simón Bolívar, Caracas, Venezuela. He is
a Microsoft Certified Systems Engineer + Internet (MCSE+I), Microsoft Certified Database Administrator
(MCDBA), Microsoft Certified Sales Specialist (MCSS), and has been awarded with the MVP (Most Valuable
Professional) status on SQL Server. He is also a voting member and volunteer of PASS, the professional
association for SQL Server.
Carlos can be reached at
Fernando G. Guerrerois a principal technologist and SQL Server product consultant in QA, United Kingdom.
His main role involves IT training, course development, and internal mentoring.
He writes for SQL Server Magazine (), presented a session on SQL Server 2000
at TechEd 2000 Europe, and has accepted to speak at PASS2001, TechEd Europe 2001, VBUG 2001, VBITS
2001, VSLive, and SQL2THEMAX conferences during the year 2001.
He is a Civil and Hydrologic Engineer with almost 20 years'experience in software development and design, in
many cases applied to engineering environments.
He holds seven Microsoft Professional Certifications, including MCSE+Internet, MCSD, MCDBA, MCT, and
has been awarded with the MVP (Most Valuable Professional) status on SQL Server. He is also a voting
member and volunteer of PASS, the professional association for SQL Server.
Networks. Special thanks to José Alberto Nuñez, Carlos Guanchez, and María Dolores Nardi. Also, thanks to
the extraordinary Planeta Networks team, especially Rodolfo Tancredi, who always has been willing to guide
me since I began to work for Planeta Networks.
I want to express special gratitude to the group of SQL Server MVPs for honoring me as a new member. This
has been one of the most important awards in my professional career. In particular, thanks to Fernando
Guerrero, a great friend and very talented professional, for taking the time to review all the chapters of the
book.
Thanks to Holly Allender for making my dream of writing a book a reality. The editorial team at Que Publishing
also deserves my gratitude, in particular Michelle Newcomb for her patience and understanding throughout
the whole process of writing the book, and for her dedication and persistence to meet the deadlines. Thanks
to all the editorial team: Sean Dixon, Vincent Mayfield, Tonya Simpson, and Kay Hoskin.
Last, but not least, my most sincere thanks to those who believed in me, and to those who, by reading this
book, will inspire me for future publications.
Carlos Eduardo Rojas
January 2001
My life has had plenty of amazing opportunities and challenges, and I was very fortunate to meet amazing
people along the way. Each one of them has contributed to what I am now, and what I will be in the future. I
would like to pay tribute to them, as an honest gratitude gesture, for all the help that they generously gave me.
In chronological order:
To my father, Fernando, the intelligent, honest, and caring person, who gave me his love, dedication, and help
and taught me the importance of quality at work. To my mother, Maruja, who gave me her love, optimism, and
unbreakable happiness. They both are responsible for most of the good values that guide my life. They built a
great family, and I only hope to live long enough to enjoy their company. To my brothers and sisters: Ana,
Inmaculada, Carlos, Rocío, and José Ignacio, I hope you know how important you are to me. I wish I could
spend more time with all of you.
To Professor Manuel Chueca, excellent professor and amazing human being, who gave me the opportunity to
teach on his team and helped me beyond any reasonable limit. To Dr. José Herráez, who generously gave
me his full support and friendship. To Dr. Luis Angel Alonso, who always helped me move forward. It was for
me an honor learning from all of you the joy of teaching. I miss you and the years we spent together.
To Tom Peters, whose books have inspired me for almost 15 years.
Last year I was honored with the SQL Server MVP award. My most sincere gratitude to Juan T. Llibre (ASP
and IIS MVP), Carlos Sánchez (Microsoft Spain), and Alberto Borbolla (VB MVP) for generously proposing me
as an MVP, and to the other SQL Server MVPs for accepting me on their team. I still cannot believe that I am
part of the amazing SQL Server MVP group. It is easy to feel small being surrounded by Bob Pfeiff, B.P.
Margolin, Brian Moran, Carlos Eduardo Rojas, Darren Green, Dejan Sarka, Gianluca Hotz, Itzik Ben-Gan,
Kalen Delaney, Michael Hotek, Neil Pike, Olivier Matrat, Ron Talmage, Roy Harvey, Russell Fields, Sharon
Dooley, Tibor Karaszi, Tony Rogerson, Trevor Dwyer, Umachandar Jayachandran, and Wayne Snyder.
Together we try to help the SQL Server community in different ways, mainly providing free user support in the
SQL Server newsgroups. We share ideas, wishes, and experiences in the most challenging newsgroup you
could imagine, together with a selected group of Microsoft support engineers and members of the SQL Server
developer team.
From the SQL Server group at Microsoft, I wish to thank Gert Drapers, Euan Garden, Lubor Kollar, Jim Gray,
Tom Barclay, Hal Berenson, Don Vilen, Adam Shapiro, Margo Crandall, Karl Dehmer, LeRoy Tutle, Rick
Byham, Shawn Aebi, Steve Dibbing, and Peter Kalbach. Their SQL Server courses, presentations, white
papers, classes, messages, and continuous support helped me understand this technology a little bit more
every day. And especially to Richard Waymire, the most knowledgeable SQL Server professional I ever met—
attending any of your speeches was a tremendous learning experience for me.
I wish to express my gratitude to the great professionals who made the Spanish SQL Server newsgroup one
of the best public SQL Server newsgroups. Among them: Antonio Soto, Carlos Paz, Carlos Sacristán, Claudio
Alabarce, Deman Thierry, Eladio Rincón, Emilio Bocau, Jesús López, Jorge López, Julián Valencia, Mariano
Melgar, Miguel Ángel Sanjuán, Miguel Egea, Norman Armas, Rodrigo Estrada, and Salvador Ramos.
I wish to thank Michelle Crocket, Kathy Blomstrom, Carol Martin, and the amazing technical edit team at SQL
Server Magazine for their continuous support. Writing for SQL Server Magazine is nothing but a pleasure
when you're surrounded by these great professionals.
To Carlos Rojas, the generous friend who gave me the opportunity to co-write this book, I will always thank
you for this great opportunity. Your continuous support to the SQL Server users'community, and especially to
the Spanish SQL Server newsgroup, proves your tremendous generosity and incredible knowledge level.
Writing a book like this would be impossible without the continuous help and support from the Que Publishing
editorial team: Vincent Mayfield, Sean Dixon, Kay Hoskin, Tonya Simpson, and especially Michelle Newcomb.
I am really impressed by their review process. However, if you still find any mistakes, or something you don't
subject when required, but we will not go into deeper detail. If you feel uncomfortable about this subject, we
suggest that you read a general database design book first.
No prior experience in Transact-SQL is necessary; however, if you have experience working with the SQL
language, from any other database system, this book can be used as a reference in which you will find a lot of
useful examples that you can use to program applications in SQL Server.
If you do have experience with any previous version of SQL Server, you will find many examples that you can
use to practice the extended functionality of SQL Server 2000. However, this is not an upgrading book for
users of previous versions, so we do not assume any prior knowledge of previous versions.
If you are a Web developer, this book can teach you how to use SQL Server's new XML functionality to
access data from the Internet. If you are a SQL Server developer and you want to introduce yourself to the
new XML world, you can find in this book some useful examples on how to use this exciting new functionality.
Learning a new programming language is a mixture of theory and practice. We try to provide as many
examples as possible about every topic. We advise you to apply these new concepts as soon as possible in a
real scenario, because this is the best way to reinforce your learning effort. If you are not working in a
database design right now, create your own personal database to manage appointments, books, pictures, or
your personal music library.
This Book's Organization
This book provides you with the skills needed to develop and maintain SQL Server applications. Also, it
contains the enhancements introduced in SQL Server 2000.
We highly recommend that you go over all the examples in this book. They were designed to help you
understand each concept and feature of Transact-SQL. You can use Query Analyzer, which is explained in
Appendix B, "Using SQL Query Analyzer," to execute all examples presented in this book.
Commonly, there are some tasks that can be performed using Enterprise Manager instead of Transact-SQL.
Be aware that every task that you perform in Enterprise Manager translates to a set of instructions in
Transact-SQL executed behind the scenes. Because the purpose of this book is to teach you the Transact-
SQL language, examples are based in Transact-SQL and, in some specific cases, the way to perform the task
in Enterprise Manager is also explained.
Appendix A, "Using SQL Server Instances," shows you how to use one of the new features of SQL
Server 2000, multi-instance support. This appendix is useful to practice the distributed queries examples that
appear in Chapter 15, "Working with Heterogeneous Environments: Setting Up Linked Servers."
This book prepares you for one of the core exams of the Microsoft Certified Database Administrator (MCDBA)
certification: Exam 70-229 Designing and Implementing Databases with Microsoft SQL Server 2000
Enterprise Edition. This exam is also an elective of the Microsoft Certified Systems Engineer (MCSE)
certification. For details on this exam, you can visit Microsoft's Web site at
Conventions Used in This Book
Examples are identified by the icon shown at the left of this sentence.
Listing, code, Transact-SQL keywords, and object names appear in monospace font, such as
EXEC sp_help
Many examples contain output, either as warning and error messages, and result sets.
In those cases, you can identify the output by the icon shown at the left of this sentence.
Simpo PDF Merge and Split Unregistered Version -
Introduction
xi
We do not show the output for some examples if the output is obvious, irrelevant, or does not offer any benefit
to the reader. In general, we prefer to show the output, so you can check whether you executed the example
properly.
Note
Special notes augment the material you read in each chapter. These notes clarify concepts and
procedures.
Tip
You'll find numerous tips offering shortcuts, tested tricks, and solutions to common problems.
Caution
The cautions warn you about common problems and misconceptions when writing Transact-SQL
code. Reading the caution sections will save you time and trouble.
What's Next?
news://msnews.microsoft.com/microsoft.public.sqlserver.olap
news://msnews.microsoft.com/microsoft.public.sqlserver.replication
news://msnews.microsoft.com/microsoft.public.sqlserver.security
news://msnews.microsoft.com/microsoft.public.sqlserver.server
news://msnews.microsoft.com/microsoft.public.sqlserver.setup
news://msnews.microsoft.com/microsoft.public.sqlserver.tools
news://msnews.microsoft.com/microsoft.public.sqlserver.xml
news://msnews.microsoft.com/microsoft.public.es.sqlserver
news://msnews.microsoft.com/microsoft.public.espanol.sqlserver.administracion
news://msnews.microsoft.com/microsoft.public.espanol.sqlserver.olap
news://msnews.microsoft.com/microsoft.public.fr.sqlserver
news://msnews.microsoft.com/microsoft.public.ae.arabic.sqlserver
news://msnews.microsoft.com/microsoft.public.arabic.sqlserver
news://msnews.microsoft.com/microsoft.public.de.sqlserver
news://msnews.microsoft.com/microsoft.public.il.hebrew.sqlserver
news://msnews.microsoft.com/microsoft.public.jp.sqlserver.server
Microsoft provides many white papers on SQL Server at the following address:
Go to Chapter 1 and start learning Microsoft SQL Server 2000 Programming by Example today!
Simpo PDF Merge and Split Unregistered Version -
Contents
xiii
Contents
About the Authors v
Acknowledgments vii
Introduction ix
The by Example Series ix
Who Should Use This Book? ix
This Book's Organization ix
How to Create Indexes 190
How SQL Server 2000 Stores Data 193
How SQL Server 2000 Modifies Data 195
Index Enhancements in SQL Server 2000 195
Accessing Data Without Indexes: Table Scan 196
Types of Indexes 196
Covered Queries and Index Intersection 206
Index Maintenance 209
Indexes on Computed Columns 219
Simpo PDF Merge and Split Unregistered Version -
Microsoft SQL Server 2000 Programming by Example
xiv
Indexed Views 220
Index Tuning Wizard 223
Summary 227
Chapter 7. Enforcing Data Integrity 229
Types of Data Integrity 229
Enforcing Integrity: Constraints (Declarative Data Integrity) 230
Chapter 8. Implementing Business Logic: Programming Stored Procedures 279
Benefits of Using Stored Procedures 279
Types of Stored Procedures 280
Creating and Dropping Stored Procedures 284
Using Parameters 288
Altering Stored Procedure Definitions 291
The RETURN Statement 292
Executing Stored Procedures 293
Stored Procedure Recompilation 301
Handling Errors 302
Nesting Stored Procedures 304
The CUBE and ROLLUP Operators 455
Using Hints 459
Chapter 12. Row-Oriented Processing: Using Cursors 463
Simpo PDF Merge and Split Unregistered Version -
Contents
xv
Row-by-Row Versus Set-Oriented Processing 463
Types of Cursors 470
Steps to Use Cursors 477
Scope of Cursors 493
Using Cursors to Solve Multirow Actions in Triggers 498
Application Cursors 499
Chapter 13. Maintaining Data Consistency: Transactions and Locks 503
Characteristics of Transactions (ACID) 503
Using Transactions 503
Concurrency Problems 521
Isolation Levels 529
Types of Locks 535
A Serious Problem to Avoid: Deadlocks 555
Chapter 14. Transferring Data to and from SQL Server 559
The Need for Transferring Data 559
Tools for Transferring Data Using SQL Server 2000 560
The BULK INSERT Statement and bcp 561
Using Data Transformation Services 579
The Copy Database Wizard 596
Chapter 15. Working with Heterogeneous Environments: Setting Up Linked Servers 607
Distributed Queries 607
Distributed Transactions 637
Appendix A. Using SQL Server Instances 643
Installing SQL Server Instances 643
database management systems: Microsoft SQL Server 2000.
This chapter teaches you the main concepts of Microsoft SQL Server 2000:
• Basic concepts about relational database systems
• SQL Server architecture and server components
• SQL Server client tools
• How to protect your data in SQL Server
• Basic principles about client/server application design and how SQL Server fits in this model
Database Models
To provide the required durability, data is stored in physical storage devices. These files are stored in different
logical formats depending on the database model selected by every particular database management system.
You can find many database models in the database market:
• Flat files
• Hierarchical
• Networked
• Relational
• Object
• Object-relational
• Document
Flat files, hierarchical, and networked models are mainly used in mainframes, whereas the other models have
been ported to client/server environments, based on personal computers. Discussing these database models
is out of the scope of this book. SQL Server 2000 implements the relational model, and the following section
teaches you the basic theory behind this popular database model.
The Relational Model
In the relational model, data is arranged in tables in which the physical location of every value is not
permanently predefined and is transparent to the data retrieval strategy. Every table is defined with a fixed set
of columns that map the entity attributes.
Data from different tables is related by logical links that are dynamically defined by the database application or
by the end user who sends a data request. Figure 1.1 shows a typical example of a relational database.
Figure 1.1. The relational model arranges data in tables with logical dynamically defined links.
Simpo PDF Merge and Split Unregistered Version -
Simpo PDF Merge and Split Unregistered Version -
Chapter 1. Relational Database Management Systems and SQL Server
3
Microsoft SQL Server was born as a joint commercial venture between Sybase and Microsoft and signed on
March 27, 1987. It was developed for the 16-bit OS/2 platform, an operating system jointly developed between
IBM and Microsoft. SQL Server started its commercial life with the commercial support of Ashton-Tate, whose
mainstream database product, dBase, was the market leader at that time. Ashton-Tate/Microsoft SQL Server
1.0 arrived on the market in May 1989.
If you do not remember those remote years, personal computers were equipped with Intel I286 and I386
processors, and the I486 processor was just a newcomer. Personal computers had processors running at
12MHz and 16MHz and had a typical 20MB–40MB hard disk. Perhaps you do not remember those years
where RAM was measured in kilobytes.
During those first years, Sybase developed Microsoft SQL Server for OS/2 and Microsoft commercialized and
supported the product on this platform. Ashton-Tate abandoned the project soon after the first version.
Starting in 1992, Microsoft SQL Server 4.2 for OS/2 was released. In this case, it was a joint development
between Sybase and Microsoft, with active development collaboration from Microsoft. It was still a 16-bit
database product, running on a 16-bit operating system (OS/2 1.3). In that personal computer market, ruled
by 32-bit processors (Intel I386, I486, and AMD AM386) at more than 33MHz and running Windows 3.1,
working with a 16-bit backend database was not a good selling point.
About a year later, Microsoft SQL Server 4.2 for Windows NT was released. This product was the final point in
the joint development agreement between Sybase and Microsoft, although Sybase code remained in SQL
Server code for several more versions to come— up to version 6.5.
For Microsoft this was a no-way-back decision, and SQL Server has since been a Windows-only product. This
was the first 32-bit release and for many customers was, perhaps, just an excuse for buying the new Windows
NT 3.1 operating system.
Remember, 1995 was the year of Windows 95, the Pentium processor, and amazing 150MHz CPU speeds on
personal computers equipped with hard disks as big as 400MB or 600MB and with 4MB–8MB of RAM. That
year was the release of the new SQL Server 6.0 for Windows NT. It didn't have the new Windows 95 interface,
but it included new features, which made this product an important contender in the database market.
These steps are defined as follows:
1. The user selects an option in a client application. This option calls a function in the client application
that generates a query that is sent to SQL Server. The application uses a database access library to
send the query in a way SQL Server can understand.
2. The database library transforms the original request into a sequence of one or more Transact-SQL
statements to be sent to SQL Server. These statements are encapsulated in one or more Tabular
Data Stream (TDS) packets and passed to the database network library to be transferred to the server
computer.
3. The database network library uses the network library available in the client computer to repackage
the TDS packets as network protocol packets.
4. The network protocol packets are sent to the server computer network library across the network,
where they are unwrapped from their network protocol.
Simpo PDF Merge and Split Unregistered Version -
Chapter 1. Relational Database Management Systems and SQL Server
5
5. The extracted TDS packets are sent to Open Data Services (ODS), where the original query is
extracted.
6. ODS sends the query to the relational engine, where the query is optimized and executed in
collaboration with the storage engine.
7. The relational engine creates a result set with the final data and sends it to ODS.
8. ODS builds one or more TDS packets to be sent to the client application, and sends them to the
server database network library.
9. The server database network library repackages the TDS packets as network protocol packets and
sends them across the network to the client computer.
10. The client computer receives the network protocol packets and forwards them to the network libraries
where the TDS packets are extracted.
11. The network library sends the TDS packets to the database access library, where these packets are
reassembled and exposed as a client result set to the client application.
12. The client application displays information contained in the result sets to the user.
• Microsoft Distributed Transaction Coordinator (MS-DTC)— Provides transaction support in multiserver
and heterogeneous environments.
• Server Network libraries— SQL Server can listen to several network libraries at the same time, waiting
for queries to answer, and use any of these libraries to send results to the client. The selected
database network library must have a compatible server network library to work with. SQL Server
2000 currently supports the following network libraries: TCP/IP Sockets, Named Pipes, Multiprotocol,
NWLink IPX/SPX, VIA ServerNET II SAN, VIA GigaNet SAN, Banyan VINES, and AppleTalk ADSP.
Simpo PDF Merge and Split Unregistered Version -
Microsoft SQL Server 2000 Programming by Example
6
Caution
Make sure that both client and server use the same network library or they will not be able to
communicate.
Tip
You do not need all these services to work with SQL Server 2000. Select only the services you
really need and you will save server resources.
Microsoft SQL Server Service contains different components that collaborate to provide back-end data
services. The three main components are
• Open Data Services— This component receives client requests from the network library and passes
them on to SQL Server. When SQL Server terminates the query process, it sends the result set to
ODS to be transferred through the network to the client application.
• Relational Engine— This component is responsible for parsing, optimizing, executing queries, and
enforcing security.
• Storage Engine— This component manages physical storage operations, such as data storage,
allocation and deallocation of data pages, transaction logging and recovery, database backups and
restoring, locking, and so on.
Note
• Direct access to the OLE DB Provider library using C++ or C# is recommended— This solution
provides full access to SQL Server 2000 through a comprehensive data-access object model with
specific properties available in the native SQL Server OLE DB provi der.
• Indirect access to the OLE DB provider for SQL Server through ActiveX Data Objects (ADO) or
ADO.Net— ADO exposes an object model, as OLE DB does, easier to implement than direct access
to the OLE DB provider, and is suitable to any programming and scripting language, including any
version of Visual Basic and ASP.Net.
• Indirect access to the SQL Server ODBC driver through the OLE DB provider with or without the ADO
library— This solution is not recommended because of the extra steps involved in the data access,
unless specific ODBC functionality is required.
• Access to database metadata through ADOX and OLE DB— This is an alternative way to connect to
SQL Server, to send Data Definition Language (DML) statements, and metadata discovery. This
connectivity solution is not represented in the diagram because it is not a very common solution.
• Administrative access to SQL Server through SQL-DMO (Distributed Management Objects)— This is
the object model library that SQL Server Enterprise Manager uses to connect to SQL Server.
Developers can use all this functionality to build small administration applications, as subsets of what
Enterprise Manager can do.
• Windows Management Instrumentation (WMI)— WMI is a scalable Windows 2000 component,
common to other server applications, which exposes an object model to control and administer SQL
Server, as well as other server services and devices .
Note
Simpo PDF Merge and Split Unregistered Version -
Microsoft SQL Server 2000 Programming by Example
8
WMI install is not part of the SQL Server setup. You can install WMI support for SQL Server 2000
from the folder x86\OTHER\wmi on the SQL Server 2000 compact disc.
Currently, WMI access to SQL Server is based on SQL-DMO, but future releases might implement
it in a different way.
• The SQL Server Administration Tree— This panel uses the TreeView control to display the structure of
every registered server. It displays different icons for every database object and shows context menus
for every object, according to the methods that can be applied to each specific object.
• The menu bar— In this menu bar, you can find the Action menu, which is equivalent to the object
context menu available from the tree; the View menu to specify how to display information about the
selected object in the tree; and the Tools menu to show general commands you can use in Enterprise
Manager to administer SQL Server.
• The taskbar— This is a dynamic list of icons that represents processes you can run in the current
context, as well as navigation keys through the tree.
• The information panel— This panel shows information in different formats, depending on the selected
object. Figure 1.5 shows the Taskpad, which, in this case, is an HTML page with information about
the Northwind database.
For every server, the Enterprise Manager tree shows the following sections (folders):
• Databases— This section includes the list of available databases in the connected server.
• Data Transformation Services— This section gives you access to the DTS Designer and the
Import/Export Wizard.
• Management— Enter this section to see the current activity of the connected server; to access SQL
Server Agent objects, alerts, jobs, and operators; to manage backups and database maintenance
plans; and to look at the SQL Server event log.
• Replication— This is where you can administer publications and subscriptions, if this server publishes
or subscribes to any database.
• Replication Monitor— This section is available only if Replication is installed on this server. In that
case, you can use this section to monitor and administer replication agents.
• Security— This section gives you access to the administration of SQL Server logins, server roles,
linked servers, and remote servers. Later in this chapter, in the "Security Model" section, you will
learn about SQL Server security and Chapter 15, "Working with Heterogeneous Environments:
Setting Up Linked Servers," covers linked and remote servers.
• Support Services— Access this section to administer other services, such as Distributed Transaction
Coordinator, Full-Text Search, and SQL Mail.