SlideShare a Scribd company logo
Visit ebookfinal.com to download the full version and
explore more ebooks or textbooks
The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit
Database Design 1st Edition Mark Horninger
_____ Click the link below to download _____
https://ebookfinal.com/download/the-real-mcts-sql-
server-2008-exam-70-433-prep-kit-database-design-1st-
edition-mark-horninger/
Explore and download more ebooks or textbook at ebookfinal.com
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
MCTS Self Paced Training Kit Exam 70 640 Configuring
Windows Server 2008 Active Directory 2nd Edition Dan Holme
https://ebookfinal.com/download/mcts-self-paced-training-kit-
exam-70-640-configuring-windows-server-2008-active-directory-2nd-
edition-dan-holme/
MCTS Windows Server 2008 Active Directory Configuration
Study Guide Exam 70 640 William Panek
https://ebookfinal.com/download/mcts-windows-server-2008-active-
directory-configuration-study-guide-exam-70-640-william-panek/
MCITP Self Paced Training Kit Exam 70 646 Windows Server
2008 Server Administrator 2nd Edition Ian Mclean
https://ebookfinal.com/download/mcitp-self-paced-training-kit-
exam-70-646-windows-server-2008-server-administrator-2nd-edition-ian-
mclean/
MCTS Self Paced Training Kit Exam 70 662 Configuring
Microsoft Exchange Server 2010 Pro Certification Orin
Thomas
https://ebookfinal.com/download/mcts-self-paced-training-kit-
exam-70-662-configuring-microsoft-exchange-server-2010-pro-
certification-orin-thomas/
MCTS Self Paced Training Kit Exam 70 236 Configuring
Microsoft Exchange Server 2007 PRO Certification Orin
Thomas
https://ebookfinal.com/download/mcts-self-paced-training-kit-
exam-70-236-configuring-microsoft-exchange-server-2007-pro-
certification-orin-thomas/
Exam 70 646 Windows Server 2008 Administrator 1st Edition
Zacker
https://ebookfinal.com/download/exam-70-646-windows-
server-2008-administrator-1st-edition-zacker/
MCSA MCSE McDba Self Paced Training Kit Microsoft SQL
Server 2000 System Administration Exam 70 228 2nd Edition
Microsoft Corporation
https://ebookfinal.com/download/mcsa-mcse-mcdba-self-paced-training-
kit-microsoft-sql-server-2000-system-administration-exam-70-228-2nd-
edition-microsoft-corporation/
MCITP Self Paced Training Kit Exam 70 646 Windows Server
Administration Ian Mclean
https://ebookfinal.com/download/mcitp-self-paced-training-kit-
exam-70-646-windows-server-administration-ian-mclean/
MCITP Guide to Microsoft Windows Server 2008 Server
Administration Exam 70 646 1st Edition Michael Palmer
https://ebookfinal.com/download/mcitp-guide-to-microsoft-windows-
server-2008-server-administration-exam-70-646-1st-edition-michael-
palmer/
The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit Database Design 1st Edition Mark Horninger
The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit
Database Design 1st Edition Mark Horninger Digital
Instant Download
Author(s): Mark Horninger
ISBN(s): 9781597494212, 1597494216
Edition: 1st
File Details: PDF, 15.04 MB
Year: 2009
Language: english
The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit Database Design 1st Edition Mark Horninger
Mark Horninger Technical Editor
Valentine Boairkine and
Herleson Pontes Lead Authors
Dinesh Asanka
Denny Cherry
Justin Langford
Steve Long
Bret Stateham
Sylvia Vargas
Database Design
Elsevier, Inc., the author(s), and any person or firm involved in the writing, editing, or production
(collectively “Makers”) of this book (“the Work”) do not guarantee or warrant the results to be
obtained from the Work.
There is no guarantee of any kind, expressed or implied, regarding the Work or its contents.The Work
is sold AS IS and WITHOUT WARRANTY.You may have other legal rights, which vary from state
to state.
In no event will Makers be liable to you for damages, including any loss of profits, lost savings, or other
incidental or consequential damages arising out from the Work or its contents. Because some states do
not allow the exclusion or limitation of liability for consequential or incidental damages, the above
limitation may not apply to you.
You should always use reasonable care, including backup and other appropriate precautions, when
working with computers, networks, data, and files.
Syngress Media®, Syngress®,“Career Advancement Through Skill Enhancement®,”“Ask the
Author UPDATE®,” and “Hack Proofing®,” are registered trademarks of Elsevier, Inc.“Syngress:
The Definition of a Serious Security Library”™,“Mission Critical™,” and “The Only Way to Stop
a Hacker is to Think Like One™” are trademarks of Elsevier, Inc. Brands and product names
­
mentioned in this book are trademarks or service marks of their respective companies.
PUBLISHED BY
Syngress Publishing, Inc.
Elsevier, Inc.
30 Corporate Drive
Burlington, MA 01803
The Real MCTS SQL Server 2008 Exam 70-433 Prep Kit
Copyright © 2009 by Elsevier, Inc.All rights reserved. Printed in the United States of America. Except
as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or
distributed in any form or by any means, or stored in a database or retrieval system, without the prior
written permission of the publisher, with the exception that the program listings may be entered,
stored, and executed in a computer system, but they may not be reproduced for publication.
Printed in the United States of America
1 2 3 4 5 6 7 8 9 0
ISBN 13: 978-1-59749-421-2
Publisher: Laura Colantoni Project Manager: Heather Tighe
Acquisitions Editor: Rachel Roumeliotis Page Layout and Art: SPi
Technical Editor: Mark Horninger Copy Editors:Adrienne Rebello,
Developmental Editor: Gary Byrne Leslie Crenna, Betty Pessagno
Indexer: SPi Cover Designer: Michael Kavish
For information on rights, translations, and bulk sales, contact Matt Pedersen, Director of Corporate Sales,
Elsevier; email m.pedersen@elsevier.com.
Library of Congress Cataloging-in-Publication Data
Application submitted
Valentine Boiarkine (MCSE, MCDBA, MCSD, MCT) is a founding partner
at Blade Ltd., a software consulting firm based inWellington, New Zealand. She is
the lead architect of the revolutionary Blade File Transfer System file transfer
technology.Valentine has over 10 years’ consulting and software development
experience, and she specializes in enterprise software integration, security,
IT alignment, and unified communications. She has designed distributed software
solutions for financial, legal, and government organizations.
Mark Horninger (A+, Net+, Security+, MCSE+I, MCSD, MCAD, MCDBA,
MCTS, MCITP, MCPD) is manager of database operations at Internet Pipeline, Inc.
He is also the founder of Haverford Consultants, Inc. (www.haverford-
consultants.com/), located in the suburbs of Philadelphia, PA. He develops
custom applications and system engineering solutions, specializing primarily in
Microsoft .NET technology and Microsoft SQL Server. He is a contributing
author to Securing SQL 2005, Configuring andTroubleshootingWindows XP Professional
MCSEWindows 2000 Professional Study Guide and Designing SQL Server 2000
Databases for .NET Enterprise Servers published by Syngress, an imprint of Elsevier
Inc. Mark has also served as an adjunct professor at Kaplan University teaching
Web design.
Mark has over 20 years of computer consulting experience and has passed
50+ Microsoft Certification Exams.
He lives with his wife, Debbie, and son, Robby, in the Philadelphia area.
Mark would like to thank his wife, Debbie, for her infinite patience, love,
and support during this project.
Lead Authors
iii
Technical Editor
Valentine is the author of numerous technical training courses, guides, and white
papers for Microsoft Corp. and Quest Software, including SQL Server Microsoft
Official Curriculum titles. She is also an accomplished trainer and presenter.
She frequently trains support engineers at Microsoft and Microsoft partners
worldwide. Her technology expertise lies in SQL Server, .NET development,
Exchange Server, and Office Communications Server.Valentine resides in
­
Auckland, New Zealand, with her husband, Keith, and children Spencer and
Alexander.
Herleson Pontes (MVP, MCT, MCITP, MCTS, MCP, MOS) is an IT
­
consultant, writer and trainer of desktop,Web, and mobile environments, with
more than eight years of expertise. He currently provides technical consulting and
IT training to companies and Microsoft CPLS all over Brazil. His specialties include
Microsoft SQL Server, Microsoft Windows Server System,Windows Desktop
Client, Microsoft Desktop Optimization Pack, database design and implementation,
strategic BI planning, system architecture and design, and IT environment
­
troubleshooting and optimization. Herleson is a key speaker, writer, and contributor
to many publications and Microsoft communities of Brazil.
Herleson holds a bachelor’s degree in information systems and is a student
working toward his master’s degree in applied informatics from the University
of Fortaleza. Herleson currently resides in Fortaleza, Ceará, with his wife, Priscila,
and family.
iv
Dinesh Asanka (MVP SQL Server, B.S. [Eng], MBA [IT]) is a database
architect at Exilesoft (Pvt) Ltd. He is primarily involved in designing
databases in SQL Server. Dinesh has been working with SQL Server
since 2000 starting from version 7.
Dinesh is a regular columnist for popular Web sites, including
sql-server-performance.com, sqlservercentral.com, and sqlserveruniverse.
com. Besides writing, Dinesh is actively involved in presentations for
the SQL Server Sri Lankan User Group (SS SLUG).
Dinesh holds a bachelor’s degree in engineering and an MBA
from the University of Moratuwa, Sri Lanka.
Denny Cherry (MCSA,MCDBA,MCTS,MCITP) is a senior database
administrator and architect for Awareness Technologies. He currently
handles all database change design and implements changes to both
the companies’ASP solution as well as the consumer hosted versions
of the product. In addition Denny manages the Infrastructure Team,
which maintains the 100-plus server environment. Denny’s background
includes database administration and database engineering positions at
MySpace.com, IGN.com, GameSpy.com, and EarthLink Networks.
In 2008 Denny was named to the Quest Software Customer
Advisory Board, and in 2009, Denny was named as a Microsoft MVP.
Denny has written dozens of articles related to SQL Server, both for
print magazines and various Web sites.
Justin Langford (MCSE, MCITP, MCDBA, SNIA, CCNA, ITIL)
is a principal consultant for Coeo Ltd, a Microsoft Gold Partner in
London. Coeo provides SQL Server consulting services for upgrade,
performance tuning, scalability, and availability solutions for all versions
of SQL Server. Coeo offers remote DBA services to customers who
outsource management and 24×7 operations of their SQL Server
Contributing Authors
v
platforms. Justin delivers and maintains SQL Server solutions for
customers in many different industry sectors throughout Europe.
Prior to joining Coeo,Justin spent three years working at Microsoft
UK as a premier field engineer. In this role, Justin delivered SQL
Server support consulting to some of Microsoft’s largest finance
and government customers in Europe. Justin has also coauthored
Wrox IT Pro: SQL Server PerformanceTuning.
Steve Long is a senior software engineer/systems analyst atWilmington
Trust. Steve has over 14 years of database and application design and
development experience. He currently provides database and application
support to trading applications and processes using Microsoft
technologies. He also serves as technical lead on significant projects
in addition to lending his infrastructure, project management, and
business process expertise to all initiatives. Before making a full-time
switch to the information technology field, Steve spent a number of
years working in the accounting field.
Steve holds a bachelor’s degree from Goldey-Beacom College in
Wilmington, Delaware, and a Client/Server Technology certification
from Pennsylvania State University. He is currently working toward
his graduate degree at Goldey-Beacom.
Steve wishes to thank his coworkers for putting up with him
every day and his family for their understanding and support during
his writing.
Bret Stateham (MCT, MCSE, MCTS, MCITP) is the owner of Net
ConnexTechnologyTraining and Consulting, LLC, located just outside
San Diego, CA. Net Connex provides consulting and training services
that are focused primarily on Microsoft server platforms. Bret has over
20 years of experience in the industry and over 10 years as a trainer.
He has been working with SQL Server since version 6.5 and has been
teaching SQL Server since version 7.0. Bret has contributed to multiple
Syngress SQL Server publications starting with Designing SQL Server
2000 Databases for .Net Enterprise Server. He stays involved with the
community by helping to organize the Socal Code Camp and he is a
frequent speaker at Code Camps and User Groups.Bret lives in Ramona,
CA, with his wife, Lori; son, Chase; and daughter, Katie.
vi
Sylvia Vargas has been working with information technology since
1981. Sylvia’s experience in SQL Server started in 1997, although
she has over 20 years’ experience in other relational database
­
technologies, including IBM SQL/DS, Digital Equipment Corp.’s
RDB, and Oracle.
She has worked for state and local governments; Fortune 500
companies, such as Boeing, Disney, and Texaco; and a broad number
of industries, including finance, manufacturing, Internet, and utilities.
She has been a developer, DBA, and manager on everything from
a SQL/DS running on an IBM/Oracle system running UNIX to
SQL Server and DB2 installations.
Sylvia has an undergraduate degree from Fordham University and
an MBA from Pace University in NewYork. She has worked
at Microsoft since 2006.
Sylvia lives in Seattle,WA, and enjoys bicycling, genealogy, and
the great theatre in the Seattle area. Sylvia also teaches part-time at
the University of Washington’s Extension Certificate Program
­
teaching SQL Server Development.
vii
This page intentionally left blank
Chapter 1 New Features in SQL Server 2008.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 1
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 2
A Word About the Test. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 2
New Feature Overview. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 3
Installation. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 3
Compressed Backups . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 5
Enhanced Configuration and Management of Audits. .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 8
New TableValue Parameter. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 9
FileStream Data Types. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 10
Sparse Column Support. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 11
Encryption Enhancements . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 13
Key Management and Encryption.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 13
High Availability.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 13
Performance. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 13
Performance Data Management. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 14
Resource Governor (Similar to Query Governor). .  .  .  .  .  .  .  .  .  .  .  .  .  . 14
Freeze Plan. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 15
SQL Server 2008 Declarative Management Framework. .  .  .  .  .  .  .  .  .  .  .  . 16
Development Improvements. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 17
LINQ Support.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 18
MERGE Statement. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 18
Spatial Data Type. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 18
Analysis Services Improvements.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
ETL/SSIS Enhancements. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
Reporting Services.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
No Longer Requires IIS. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
Better Graphing. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
Export to Word Support. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
Deprecated Features. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 19
Discontinued Features.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 21
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 22
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 22
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 23
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 24
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 30
Contents
ix
x Contents
Chapter 2 Implementing Objects. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 31
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 32
Understanding DDL and DML Language Elements. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 32
Performing a Conditional Drop . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 36
Working with Tables, Constraints, and Indexes. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 38
Working with Tables andViews. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 39
Creating Tables . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 39
Computed Columns . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 42
Creating User-Defined Data Types. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 42
Working with Constraints. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 43
Enforcing Referential Integrity through
FOREIGN KEY Constraints. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 46
Creating Indexes.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 50
Working with Full-Text Indexes. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 55
Partitioning Data. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 56
Horizontal Partitioning . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 57
Vertical Partitioning. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 57
Viewing and Modifying Data. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 60
CreatingViews. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 60
Creating Stored Procedures. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 63
Creating Functions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 66
Creating Triggers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 67
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 71
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 71
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 73
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 74
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 83
Chapter 3 Programming Objects . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 85
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 86
Implementing Functions.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 86
Advantages and Limitations of UDFs. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
Scalar Functions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 87
Example: Creating and Consuming a Scalar Function. .  .  .  .  .  .  .  .  .  .  . 90
Table-Valued Functions.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 93
Example: Creating and Consuming a Table-Valued
Function and an Inline UDF. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 95
Managing User-Defined Functions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 98
Managing User-Defined Function Security. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 101
Working with Deterministic and Nondeterministic Functions . .  .  .  .  .  . 102
Implementing Stored Procedures . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 104
Contents xi
Creating Stored Procedures. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 105
Example: Creating and Consuming a Stored Procedure. .  .  .  .  .  .  .  .  . 107
Managing Stored Procedures. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 109
Managing Stored Procedure Security.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 111
Adjusting Transaction Isolation Levels. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 112
Implementing Triggers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 117
Creating DML Triggers.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 118
Example: Creating and Consuming a DML Trigger. .  .  .  .  .  .  .  .  .  .  .  . 121
Creating DDL Triggers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 123
Example: Creating and Consuming a DDL Trigger. .  .  .  .  .  .  .  .  .  .  .  . 125
Creating Logon Triggers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 126
Example: Creating and Consuming a Logon Trigger. .  .  .  .  .  .  .  .  .  .  . 127
Using Recursive and Nested Triggers . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 129
Managing Triggers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 130
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 133
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 133
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 134
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 136
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 146
Chapter 4 Using the CLR. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 147
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 148
CLR and Managed Code Explained. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 149
CLR Integration. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 152
Languages Supported. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 154
What Is the Base Class Library? . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 154
Registering CLR Assemblies for Use with SQL Server. .  .  .  .  .  .  .  .  .  .  .  .  .  . 158
Understanding Permission Sets. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 161
Implementing SQL Server Objects Using Managed Code. .  .  .  .  .  .  .  .  .  .  .  . 165
Creating CLR Functions . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 166
Registering CLR Functions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 169
Creating CLR Aggregates. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 170
Registering CLR Aggregates. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 175
Creating CLR Stored Procedures. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 176
Creating CLR Triggers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 179
Creating User-Defined Data Types Using the CLR. .  .  .  .  .  .  .  .  .  .  .  .  .  . 181
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 187
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 188
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 191
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 193
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 202
xii Contents
Chapter 5 Implementing Error Handling. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 203
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 204
Understanding Errors. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 205
Error Types.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 205
sys.messages CatalogView.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 206
Severity Level.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 206
Scenarios of Use.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 207
Managing and Raising User-Defined Errors. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 208
System Procedures and Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . .208
Example: Creating User-Defined Error Messages.
 .  .  .  .  .  .  .  .  .  .  .  .  .  . 210
Raising User-Defined Error Messages. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 216
Example: Raising Messages Using
the RAISERROR Statement. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 220
Handling Errors. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 224
@@ERROR Function. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 225
Example: Handling Errors with @@ERROR Function. .  .  .  .  .  .  .  .  . 228
TRY…CATCH Block. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 231
Example: Handling Errors with a TRY…CATCH Block. .  .  .  .  .  .  .  . 233
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 238
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 238
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 240
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 242
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 250
Chapter 6 Implementing Transactions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 251
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 252
Transactions Explained. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 252
Named Transactions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 253
Nesting. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 255
Commit and Rollback. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 255
Save Points. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 257
ACID. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 257
Atomicity.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 257
Consistency. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 257
Isolation. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 258
Durability.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 258
Isolation Level Explained. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 258
Locking. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 261
Deadlocking . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 266
Transaction Traps. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 267
Troubleshooting Transactions . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 269
Contents xiii
Transaction Examples. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 270
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 271
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 271
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 274
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 275
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 284
Chapter 7 Working with DML Queries . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 285
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 286
Using the INSERT Statement.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 287
Using the INSERT Statement with the VALUES Clause. .  .  .  .  .  .  .  .  .  . 289
Using the INSERT…SELECT Statement to
Insert Query Results into a Table.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 291
Using the INSERT Statement with the EXECUTE Clause. .  .  .  .  .  .  .  . 292
Using the INSERT Statement with the TOP Expression. .  .  .  .  .  .  .  .  .  . 294
Using the UPDATE Statement. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 300
UPDATE Statement Examples. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 302
Understanding the Column.WRITE Expression. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 305
Using the DELETE Statement. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 308
DELETE Statement Examples . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 309
Using the MERGE Statement . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 312
MERGE Statement Examples. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 314
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 319
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 320
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 322
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 324
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 340
Chapter 8 Using Advanced Functionality with DML.
 .  .  .  .  .  .  .  .  .  .  .  .  .  . 341
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 342
Using @@IDENTITY and NEWID Functions in DML Statements. .  .  .  . 343
Using IDENTITY_INSERT to
Insert ExplicitValues into Identity Columns . .  .  .  .  .  .  .  .  .  .  .  .  . 347
Using the NEWID Function . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 349
Returning Data from DML Operations Using the OUTPUT Clause.
 .  .  .  . 352
Using the OUTPUT Clause with the MERGE Statement . .  .  .  .  .  .  .  .  .  .  . 357
Performing Nonlogged DML Operations. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 359
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 365
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 366
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 368
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 369
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 382
xiv Contents
Chapter 9 Working with Multiple-Source Queries. .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 383
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 384
Using Linked Servers. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 384
How a Linked Server Works. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 385
Configuring a Linked Server.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 385
Provider Options. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 394
Using Four-Part Database Names. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 396
The DTC Explained. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 397
OpenQuery, OpenRowSet, and OpenDataSource Explained. .  .  .  .  .  .  .  .  .  . 397
OpenDataSource. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 399
OpenQuery. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 399
OpenRowSet. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 400
Multiple Sources with SQL Server Integration Services. .  .  .  .  .  .  .  .  .  .  .  .  .  . 400
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 410
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 410
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 412
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 413
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 418
Chapter 10 Demystifying Data Types . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 419
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 420
Built-in Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .420
Functions.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 424
Cast. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 424
Convert. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 427
Len . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 429
Right and Left Functions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 431
Replace. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 433
Charindex . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 435
Patindex. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 437
Computed Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438
Filestream Data Type.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 439
Boxing and Unboxing:The Cost.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 440
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 442
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 442
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 445
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 446
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 450
Contents xv
Chapter 11 Explaining Advanced Query Techniques. .  .  .  .  .  .  .  .  .  .  .  .  . 451
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 452
Implementing CTE (Common Table Expression) Queries. .  .  .  .  .  .  .  .  .  .  .  . 452
Creating CTEs.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 452
Creating Recursive CTEs. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 457
Applying Ranking Functions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 462
Using ROW_NUMBER. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 463
Using RANK, DENSE_RANK and NTILE. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 466
Controlling Execution Plans. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 471
Understanding Hints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .471
Using Query Hints.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 472
Using Table Hints. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 474
Using Join Hints.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 477
Using the Query Governor.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 478
Using the Resource Governor . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 480
Managing Internationalization Considerations. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 486
Understanding Collations. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 486
Defining Language-Specific Custom Errors. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 492
Creating and Altering Tables. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 493
Sparse Columns. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 494
Compression . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 495
Row Compression. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 497
Page Compression. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 497
Estimating Compression Savings. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 499
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 501
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 502
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 505
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 509
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 517
Chapter 12 Explaining XML . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 519
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 520
Retrieving and Transforming XML Data.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 520
Transforming XML Data . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 521
OPENXML, sp_xml_preparedocument, and sp_xml_removedocument . .  . 525
XQuery and XPath. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 528
XPath . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 534
XML Indexes.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 537
XML Schema . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 541
Well-Formed XML. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 544
XML Examples . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 546
xvi Contents
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 547
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 547
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 550
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 551
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 557
Chapter 13 Performance Tuning.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 559
Introduction . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 560
Working with Query Execution Plans.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 560
Compilation and Recompilation. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 561
Cost-Based Optimization. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 562
Capturing Query Execution Plans.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 562
Graphical Execution Plans. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 563
Text-Based Execution Plans. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 564
Interpreting Graphic Execution Plans . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 564
Reading Execution Plans . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 565
Estimated and Actual Execution Plans. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 565
Tracing with SQL Profiler. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 566
Trace Templates . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 567
Trace Events.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 570
Trace Filters. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 572
Server-Side Tracing.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 572
Combining System Monitor and Profiler Traces. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 575
Replaying Traces.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 575
Using SQLDiag to Collect Performance Data. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 576
Working with Database Tuning Advisor.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 578
Capturing a Workload.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 579
Performing Analysis with DTA. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 581
Implementing DTA Recommendations . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 584
Using Dynamic ManagementViews. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 584
Summary of Exam Objectives.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 589
Exam Objectives Fast Track . .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 589
Exam Objectives Frequently Asked Questions. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 591
Self Test.
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 592
Self Test Quick Answer Key. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 597
Index. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 599
Companion Web Site: An appendix with coverage of other components in SQL and a
more detailed answer key for the Self Test questions in this book are available on theWeb.
Go to www.elsevierdirect.com/companions/9781597494212.
1
Exam objectives review:
˛ Summary of Exam Objectives
˛ Exam Objectives Fast Track
˛ Exam Objectives Frequently Asked Questions
˛ Self Test
˛ Self Test Quick Answer Key
Exam objectives in this chapter:
New Feature Overview
■
■
Reporting Services
■
■
New Features in
SQL Server 2008
Chapter 1
MCTS SQL Server 2008
Exam 433
2 Chapter 1 • New Features in SQL Server 2008
Introduction
Congratulations on your journey to become certified in SQL Server 2008.This
book will help prepare you for your exam and give you a practical view of working
with SQL Server 2008.
SQL Server 2008 is a fantastic product when you think about all it does. I’ve
worked with SQL Server since the days of 6.5, and it’s come a long way since then.
In this chapter, we will briefly review the new features in SQL Server 2008.
There are quite a few enhancements to SQL Server, many of which will make the
job of the DBA much easier. One of these, the new performance data management
system, allows for database statistics and performance information to be automatically
captured across an enterprise.
While this chapter covers the new features in SQL Server 2008, bear in mind
many of the “basic” features of SQL will also be covered on the test.This book
will not only cover the new features but also the topics from earlier versions
of SQL Server that have not changed, as you will also need to know these items.
Head of the Class…
Know and Understand All SQL Server 2008 Features
Be sure you understand all of the topics in this book before attempting
the test. It will cover old and new features, so don’t limit your studying to
just the new features. This will help you not only when it comes to the
test, but also in using SQL Server 2008 in general.
A Word About the Test
On your testing day, make sure you arrive rested and ready to sit for the exam.
Be calm and read each question carefully. Microsoft doesn’t try to trick you;
however, the questions and answers are presented in such a way that you should
think about each question before answering it.
When you take your exam, be sure to leave no question unanswered. Most
questions are multiple choice, so if you can narrow it down to two possible answers,
New Features in SQL Server 2008 • Chapter 1 3
you have a 50–50 chance at getting the question right—although this book will do
an excellent job of preparing you for the exam.
If you are not sure of the answer to a question, sometimes it’s good to skip
that question and move on and come back to it.Another question may jog your
memory, and when you come back to the first question the answer is much clearer.
When you go in for your test, don’t bring pagers, laptops, cell phones, and
so on.They will not allow you to bring them in.Also be sure to bring two forms
of ID. Most testing centers have video cameras, and you are taped during the exam
to deter cheating.
Test Day Tip
Be sure to read each question completely before answering! Sometimes
there is a more “correct” answer than the first answer in the list. While
there may be more than one correct answer, one solution may be better
than another.
Test Day Tip
Make certain you know which features go with which edition. You can
be sure that some answers will be presented in such a manner as to test
your knowledge of editions.
New Feature Overview
SQL Server 2008 has many new features for the DBA and database developer.
With these features, Microsoft was able to achieve its vision of managing data more
efficiently.
The following section is meant to provide a high-level overview of many of the
new features found in SQL Server 2008.
Installation
The new SQL Server Installation Center offers many more options. Figure 1.1 will
familiarize you with the new tool.
Discovering Diverse Content Through
Random Scribd Documents
Helmi rauhoittuu täydelleen. Se oli vain sitä tavallista. Ehkäpä
tästä pian pääsee lähtemään.
Vaan kun hän palaa vastapäisellä seinällä olevan vaatekaapin
luota, ei hän ole tuntea äitiään. Kellertävät kasvot ovat käyneet
kaamean kalpeiksi, silmät palavat kuin tulen liekki, hän on noussut
puoliväliin istualleen, ja suupielet nyähtelevät.
"Tyttö!" tulee käheästi ja raivokkaasti. "Sinun… nyt minä huomaan
sen… sinun asiasi eivät ole oikealla tolalla."
Helmi kalpenee, alkaa vavista ja pysähtyy auki levitetty nenäliina
kädessään keskelle lattiata.
"Mi… mitä te oikein tarkoitatte?" sopertaa hän.
"Mitäkö tarkoitan!"
Saaren emännän ääni on enemmän kihisemistä ja vinkumista kuin
kiljahdusta.
"Mitäkö tarkoitan!" parkaisee hän toisen kerran. "Et kai sinä ole
niin vastasyntynyt, ettet sitä itsekin älyäisi."
Tässä se nyt oli. Maailma tummenee Helmin silmissä, menee
aikaa, ennenkuin hän saa kootuksi malttinsa voidakseen edes jotakin
vastata.
"Se ei ole mahdollista", sanoo hän sitten kuiskaamalla.
"Mahdollista! Mutta kuka… kenelle…!"
Saaren emännän raivolla ei ole rajoja. Mutta Helmi on nyt
saavuttanut mielenmalttinsa. Sen verran hän älyää, että vielä on
syrjäisen melkein mahdoton mitään huomata. Se on johonkin
perustuvaa epäluuloa, mutta varmaa ja — totta epäluuloa.
"Sano minulle heti", huudahtaa äiti kiivaasti, "kenelle sinä… Voi
taivas!"
"Te olette sairas, äiti", vastaa Helmi rauhallisesti ja maanitellen.
"Te olette sairas ja tarvitsette lääkäriä. Minä menen soittamaan."
"Lääkäriä! Sinä tarvitset lääkäriä ja sinusta hän saa ottaa selon! Ja
poliisia vielä lisäksi!"
Nyt Saaren tyttären silmät leimahtavat ja poskille syttyvät punaiset
täplät.
"Joskin niin olisi", sanoo hän harvakseen ja hammasta purren,
"niin minkä yksi köyhä, oppimaton poliisi sille mahtaisi! Mutta kun ei
ole!"
"Sinä… ulos, mene paikalla tiehesi ja käske isäsi tänne!"
Helmi ei enää rupea vastustelemaan. Hän kiertää välikamarien ja
salin
kautta vierasporstuaan ja menee sieltä ylös omaan huoneeseensa.
Porstuassa ollessaan hän kuulee, kuinka ovi käy ja isä menee äidin
luo.
Hän vavahtaa, mutta yhä hän uhmaten pitää päätään pystyssä.
* * * * *
Vasta kun hän pääsee lämpimään, kodikkaaseen huoneeseensa,
hänen hermovoimansa pettävät ja hän vaipuu itkien levitetylle
vuoteelleen.
Ei tästä enää mitään tule. Pois hän täältä tahtoo. Hän lähtee jo
ensi yönä Nikun luo, kyllä he tulevat toimeen.
Mutta voiko hän lähteä, olematta äitinsä murhaaja. Ja maailma on
niin kylmä ja kavala, nytkin siellä sataa kylmää, kosteaa räntää ja tie
asemalle on pitkä.
Erehdys. Oli jo herennyt satamasta räntää, ilma oli pakastunut ja
taivaalla vilkkuivat kirkkaat tähdet.
XIII
Kun Saaren isäntä illalla kiipeää tyttärensä kamariin, on hän
huolestuneen ja tuskastuneen näköinen. Helmi on jo sytyttänyt
lampun ja hänen kasvonsa ovat kalpeat ja itkettyneet. Hän ei kuule
oven käyntiä ja, kun hän äkkiarvaamatta näkee isänsä takanaan,
kiljaisee hän pelästyksestä ja vetäytyy kokoon aivan kuin isä aikoisi
häntä lyödä.
"Mitä säikkyilet. Ei kai sinulla ole huono omatunto?"
Helmi pelästyy yhä enemmän. Mutta Saaren Juhani ei ole lainkaan
lyövän näköinen, vaan valitsee paikan ja istuu pitkän tovin
äänettömänä.
"Äitisi on siellä kovin huonona", sanoo hän vihdoin. "Lääkäri
määräsi sille jotakin rauhoittavaa. En tiedä, mitä se oli."
Helmillä ei ole mitään vastattavaa.
"Oliko teillä jotakin sanan vaihtoa?" kysyy isä vähän ajan kuluttua.
"Ei. Mutta äiti kuvittelee kaikenlaisia ja kiihoittaa itseään suotta…
ja sitten käy niinkuin käy."
"Helmi. Sinä tiedät niinkuin minäkin, ettei äiti ole pitkä-aikainen
keskuudessamme… Oliko se jotakin siitä Suontaan pojasta ja sinä
vastasit ynseästi."
"En minä muista, mitä se oli. Olen nyt itsekin kipeä."
"Se on ikävää. Tarvittaisiin äitisi hoitamisessa, mutta pitänee ottaa
hoitaja muualta."
Isä on taas vaiti. Olisiko äiti kertonut, — niin, miksei olisi, on vain
odotettava, mitä tulee.
Vihdoinkin:
"Äiti jutteli, vielä tohtorin tultuakin, käsittämättömyyksiä, enkä
mitenkään tahtonut saada häntä olemaan vaiti."
Nyt, nyt se tulee välttämättömyyden pakosta. Paras, kun nyt olisi
mahdollisimman kaukana täältä. Mutta Saaren Juhani on taas
aikansa vaiti. Sitten hän luo surullisen katseen tyttäreensä.
"Sellaisia asioita puheli, että minua oikein kauhistutti. Mutta sairas
on sairas ja minä tiedän kyllä, mitä minun pitää uskoa ja mitä ei."
Eikö nyt olisi selvintä langeta polvilleen, tunnustaa kaikki ja,
pyytää anteeksi ja sitten lähteä. Mutta koko Helmin olento on kuin
herpautunut ja ajatusvoima turtunut. Hän istuu vain paikallaan ja
silmät katsovat suoraan eteen.
"Jos minä lähtisin pois — joksikin aikaa", aloittaa hän viimein
neuvottomasti.
"Ei, se olisi vain pahennukseksi. Koettaisit sen sijaan jollakin
tavalla sovittaa."
"Niin, mutta miten?"
"En osaa sitä sanoa. Sinun itsesihän se pitäisi parhaiten tietää. Me
olemme, äitisi ja minä, aina katsoneet parastasi emmekä ole tähän
mennessä kylläkään saaneet kokea epäkiitollisuutta ja kunnioituksen
puutetta puoleltasi."
Isä nousee niinkuin sanottavansa sanonut. Mutta ovelle tultuaan
hän vielä pysähtyy ja kääntyy ympäri.
"Oliko teillä puhetta siitä, siitä…?"
Helmi arvaa kyllä, kenestä on kysymys.
"Ei ollut", vastaa hän.
"Se on hyvä. Koeta sinäkin unohtaa joutavuudet."
Taas hän empii, ennenkuin jatkaa:
"Lopettaisit sen kirjepuuhankin. Jos muistaa, niin, kun aika tulee,
muistaa muutenkin. Saattaa sinulle kirjoitella, vaikka toinen jo onkin
kärryillä. Tiedetään ne sällimiehet ja kaupunkipaikat."
Painaa oven jälessään kiinni ja menee portaita alas.
* * * * *
Seuraavana yönä ei Helmi saa unta silmiinsä ja vielä päivän
valjetessa hän makaa valveillaan. Hänestä tuntuu kuin koko maailma
olisi sekaisin ja kun hän yön kuluessa ei olisi ajatellut yhtään selvää
ajatusta.
Ja kuitenkin hän on olevinaan selvillä yhdestä asiasta. Sarkan
Nikolai ei saa häntä enää rakastaa, hänen täytyy siis häntä vihata.
Mutta ketä hän, Helmi, pettää: itseään, Nikuako vaiko kaikkia, koko
maailmaa.
Ah, Nikolai, minä olin sinulle kuin köyhän miehen ainoa lammas,
joka vietiin. Sinulla ei ollut edes vanhempia, omasi olin vain minä,
siinä suhteessa olit minua samalla kertaa onnellisempi ja
onnettomampi. En voi tulla luoksesi haudan yli, mutta sittenkään älä
unohda minua. Ellet rakasta, niin vihaa, kun vaan muistat.
Näin hän aikoo kirjoittaa, muttei kirjoita mitään — toistaiseksi.
Tulkoon nyt, mitä tulee.
Aamulla, kun hän menee tupaan, ovat hänen kasvonsa yhäkin
kalpeat ja väsyneet, mutta katse on teräksinen ja kirkas ja hän antaa
määräyksiä niin lyhyesti ja täsmällisesti, että väki säpsähtää ja
katsoo häneen kummeksien.
XIV
Saaren Helmi odottelee eikä hän itsekään tiedä, mitä hän odottelee,
mutta jotakin vaan, joka pakosta on tuleva. Hänen hermonsa ovat
paatuneet, hän on valmis vastaanottamaan mitä muuta tahansa kuin
häpeän ja siihen kuuluvat ihmisten katseet. Sarkan Nikolaille on hän
kirjoittanut, pyytänyt häntä olemaan työssä ja touhussa, mutta
kirjoittamaan harvemmin. Kirjeet herättävät huomiota, oli hän
sanonut. Eikö työ ole surun paras lääke? kysyi hän itseltään
vaatiessaan Nikulta yhä enemmän ja enemmän työtä. Sillä jos
Nikolai rakasti häntä niin, niinkuin hän uskoi, niin suuri oli se suru,
joka oli Nikua kohtaava.
Mutta kun kerran Niku on ollut mies minut ottamaan, niin kai on
mies jättämäänkin, ajattelee hän ja sydän tahtoo itkeä, mutta hän
pakottaa silmänsä kyynelettömiksi.
Olenko minä hullu? kysyy hän itseltään viedessään kirjeen postiin
ja toteaa tylysti:
En, vaan minuun on mennyt pahahenki, perkele.
Itse hän ei kuitenkaan niin ollut tahtonut. Hän oli tahtonut olla
rehellinen ja hän oli tahtonut olla kokonainen, mutta hänen oli
pidettävä kunniassa neljäs käsky eikä hän saanut ehdoin tahdoin
saattaa äitiään hautaan.
Ja hän vartoo. Antaa nyt tulla.
* * * * *
Illat ovat pitkät ja ilmat käyvät yhä kylmemmiksi. Helmi istuu
kamarissaan ja tulet uunissa ja lampussa palavat kauan. Eikö nyt jo
ala olla maatamenon aika, lähimain.
Mutta portaissa kuuluu askelia, askelmat narisevat. Olisiko joku
tytöistä tai isä? Vaan mitäpä he täältä hakisivat. Nyt koputetaan
ovelle. Kukahan! Hän on ihmeellisesti vieraantunut entisistä
tovereistaankin.
"Sisään!"
Ja sitten:
"Sinäkö siinä taas. Aina sinä osaat valita sellaiset merkilliset
vierailu-ajat."
Valo huikaisee Suontaan Heikin silmiä.
"Anna anteeksi", pyytää hän, "en voinut olla enää tulematta."
"Olet sinäkin. Mutta istu nyt kiireimmäksi aikaa. Mitähän ihmiset
oikein ajattelevat, kun tällaisella ajalla tulit?"
"Ei minua kukaan nähnyt. Olen jalkaisin liikkeellä ja kun näin valon
kamaristasi ja vierasporstuan oven auki puikahdin sisälle kenenkään
huomaamatta."
"Se on sisälle, mutta entä ulos."
Nuori mies painaa katseensa alas. Helmin mielikuva hänestä ei ole
ollut erehdyttävä. Siinä on suoruutta, rehellisyyttä ja omalaatuisensa
komeuttakin. Mutta… Helmi karkoittaa ajatuksen luotaan ja puree
huultansa. Nyt Suontaan Heikki kohottaa katseensa ja katselee
häntä rukoilevasti.
"Ja senkö asian takia sinä tulit?" kysyy Helmi hymyillen.
"Niin."
"Mutta etkö sinä, poika parka, käsitä, että maineeni kärsii
tällaisesta. Ensin kolkuttelet aittani takana, niin että koko maailma
saa sen tietää ja sitten hiiviskelet kamariini. Ei reilu kosiomies sillä
tavalla kulje."
"Vaan enhän voi oriilla reippaasti ajella pihaan saamaan
rukkasiakaan. Pitäähän minun toki saada edes aavistus siitä, mitä
minulla on odotettavissa."
Helmi hymyilee ensi kerran pitkästä aikaa ja hänen hampaansa
välkähtelevät lampunvalossa.
"Ahaa, sinä tarkoitat, että meidän sitä ennen täytyisi, niinkuin
sanotaan, pitää seuraa."
"Ei", sanoo poika ujosti, "tahdoin vain saada selon siitä, huolitko
minusta."
"Vai niin. Mutta tässä on kysymys muustakin asiasta: rakastatko
minua."
"Olen sen jo kerran sinulle sanonut."
"Tahdon todellakin muistella, että kuiskuttelit minulle jotakin
sentapaista oven takaa."
Suontaan Heikki hengitti kiivaasti, hänen poskensa saivat hehkua
ja hänen silmänsä leimusivat.
"Älä tee pilkkaa, Helmi", huohotti hän, "sen takia, että olen ujo ja
saamaton. Sillä minä en ole tällaisissa asioissa ennen kulkenut,
minulla ei ole tottumusta. Kuule Helmi, minä en ole sen laadun
miehiä, että voisin lakkaamatta, vuosikausia, juosta jälessäsi ja
mahdollisissa ja mahdottomissa tilaisuuksissa kuiskata: Helmi, Helmi,
minä rakastan sinua. Mutta sen tahdon sanoa sinulle, että siitä asti,
kuin ylimalkaan olen tiennyt, mitä rakkaus on, on se kohdistunut
sinuun, sen sanon vieläkin eikä se muuksi muutu, vaikka elävä
saatana olisi."
Helmi nousi seisomaan. Hän oli käynyt kasvoiltaan aivan valkeaksi.
"Muistatko sinä, mitä sanoit?" kysyi hän nopeasti.
"Muistan."
"Sinä sanoit: vaikka elävä saatana olisi."
"Minä sanon sen vaikka vieläkin."
"Mutta et kai sinä tahdo, että piru on siunaamassa meidän
avioliittoamme!"
Nyt Suontaan Heikkikin kavahti seisomaan ja tarttui Helmiä
käteen.
"Helmi", sanoi hän hengittäen raskaasti, "sanoitko sinä:
avioliittomme?
Tuletko sinä? Rakastatko sinä — edes vähän?"
Saaren Helmi on jo rauhoittunut. Hän ei tunne mitään, hänen
hermonsa ovat kuin puuta, mutta hänen aivonsa ovat toiminnassa ja
hän harkitsee, harkitsee.
"Poika rukka", kuiskaa hän laskien kätensä hänen päälaelleen,
"enhän minä tiedä ja kuinka minä voisinkaan näin äkikseltään mitään
tietää, mutta minä tahdon koettaa…"
Se onkin Suontaan Heikille kylliksi. Hän sulkee Helmin syliinsä,
suutelee hänen huuliaan, silmiään, kaulaansa. Ja Helmi sallii sen
tapahtua. Se ei ollenkaan häiritse hänen rauhaansa. Hän pysyy vain
syrjästäkatsojana ja tekee havainnoita asioista, jotka — kuuluvat
asiaan. Ei ikimaailmassa hän olisi uskonut, että Heikki Heikinpoika
Suontaa voisi olla noin kiihkeä ja intohimoinen.
"Sinä et tule katumaan, Helmi", kuiskaa poika, "minä teen sinut
onnelliseksi, vaikka mikä olisi…"
"Vaikkako mikä olisi!" keskeyttää Helmi tyynesti ja soinnuttomasti.
"Vaikka mikä olisi ja teen vaikka väkisin."
"Kuule, Heikki, minä panen kaikki mieleeni, kaiken, mitä sanot ja
ehkä muistutan sinua siitä joskus."
"Pane, muistuta. Voi, Helmi, vuosikausia olen tätä ajatellut,
vuosikausia olen itsekseni aprikoinut, uskallanko…"
Toisen nuorekas, rehellinen into lämmittää Helmiä. Ah, kunpa
poika tietäisi, mutta ei, ei saa edes ajatellakaan. Täytyy olla tyyni ja
harkitsevainen. Ja aika kuluu Helminkään sitä huomaamatta ja valot
Sarvalan kylässä ovat jo aikaa sitten sammuneet.
"Kuulehan nyt, poika", sanoo hän äkkiä kylmästi ja hyydyttävästi.
"Miten sinä aiot päästä täältä pois?"
"Hoh! Minä osaan kyllä mennä hiljaa. Ja sitäpaitsi: minä tulen
huomenna hevosella takaisin, — isäsi puheille, alakertaan."
Helmi hymähti.
"Tarkoitatko, ettei sen poismenon kanssa niin väliä olekaan?" kysyi
hän.
Poika lensi punaiseksi.
"En", vastasi hän. "Mutta vuosia olen sinua ajatellut enkä ole
luoksesi pyrkinyt kuin sen yhden ainoan kerran. Ja silloinkin vain
puhellakseni."
Helmi miettii, yhä vain miettii ja silmissä palaa tuli, joka voisi
kammottaa Suontaan Heikkiä, jos hän sen huomaisi.
"Ihmiset eivät saa saada tietää, että olet ollut täällä yömyöhällä",
puhuu hän viimein matalasti ja ikäänkuin neuvottomana kääntäen
katseensa pois. "Alhaalla voivat vielä valvoa äidin kanssa. Parempi,
että menet viiden vaiheilla tai hiukan sitä ennen. — Lupaatko maata
lattialla rauhallisesti?"
"Voi, Helmi, minähän tulen kuitenkin huomenna takaisin. Älä vaadi
sellaista, jota en voi luvata tai anna minun mennä."
"Sinä et voi mennä sen syyn takia, josta jo kerroin."
Suontaan pojan posket hehkuivat ja silmät olivat kuin verhon
takana.
"Kyllä minä koetan", kuiskasi hän, "mutta anna kun suutelen sinua
ensin."
"No, suutele, mutta käännä sitten selkäsi, että saan riisuutua."
* * * * *
Lamppu sammuu, tunnit alkavat kulua. Helmin ajatus valvoo,
mutta ruumis ja hermot ovat kuin turruksissa. Ah, ei uskalla
ajatellakaan sitä, mitä tahtoisi. Tämä on kauheata.
"Helmi", kuuluu kuiskaus lattialta.
Mutta Helmi ei vastaa ja aikoja kuluu, jolloin kuuluu vain kahden
ihmisen hengitys.
"Helmi", kuuluu uudelleen, "nukutko sinä."
Saaren Helmi painaa luomensa lujemmin kiinni ja kääntää
kylkeään.
"Saanko minä tulla luoksesi?"
Ei vastausta. Helmistä tuntuu kuin hänen ajatuksensa olisivat
matkojen päässä täältä ja vain hänen eloton ruumiinsa makasi
sängyssä. Hän tuntee, kuinka kuumat huulet koskettavat hänen
kasvojaan, kuinka peitettä nostetaan ja kuinka hänen asentoaan
muutetaan eikä hän tee liikettäkään mitään torjuakseen. Sitten hän
kuin kaukaa kuulee oman äänensä:
"Hyvä Luoja, Heikki, mitä sinä oikein teet?"
Mutta minkä pitää tapahtua, se tapahtuu.
Vasta sitten hän havahtuu, nousee istumaan ja sytyttää kynttilän.
Ja hänen silmänsä ovat uhkaavat ja hänen äänensä värisee kun hän
sanoo:
"Tiedätkös, mitä teit?"
Suontaan Heikki on kalpea ja totinen eikä hän voi muuta kuin
sopertaa:
"Minähän rakastan sinua ja, niinkuin sinä olet minun, niin olen
minä sinun."
Vaan Helmi heittäytyy suulleen vuoteelleen ja alkaa itkeä, itkee
suonenvedontapaisesti ja taukoamatta niin että hartiat vavahtelevat.
Mutta mitä hän itkee, — sen tietää vain hän itse.
XV
Päivän valjetessa ei Helmi tahdo voida ottaa kuvastinta käteensä.
Mutta täytyy, on pakko tehdä se, vaikka käsi enemmän kieltää kuin
toinen käskee.
Onko se sama Saaren Helmi kuin ennen, joka nyt katselee häntä
kiiltävästä pinnasta, vaikeitten kehysten keskeltä. Ensin Helmi
peräytyy ja laskee kuvastimen syrjään, mutta ottaa sen heti
uudelleen käteensä. Ellei uskalla itseään katsella, niin mitä sitten!
Kasvot ovat harmaankalpeat, — entä sitten, ulkonakin on taivas
harmaja ja alakuloinen.
Silmät ovat ilmeettömät ja niitä ympäröivät siniset renkaat, — niin,
takanahan onkin valvottu yö.
Huulet ovat ikäänkuin käyneet kovemmiksi ja verettömämmiksi, —
sen ne voivat tehdä vähemmästäkin tuskasta ja jännityksestä.
Ja pienemmistä ja lyhytaikaisemmistakin mielenliikutuksista
saattaa vartalo saada lyhistyneen, kuluneen leiman.
Mutta antaa olla. Helmi naurahtaa oneasti ja laskee peilin
lopullisesti pois. Näinpähän on tahdottukin.
"Hyvin, hyvin kelpaan Suontaahan", ajattelee hän. "Kaikki eivät
kelpaisi paremmankaan näköisinä."
Kun hän nyt antaa ajatuksensa kääntyä Sarkan Nikolaihin, on
tämä niinkuin kaiken ulkopuolella. Niku, mitä hän oikeastaan
menettää? Ryhdittömän, huonon ihmisen. Niku kenties suree
aikansa, ellei heti ala vihata, mutta tuhannet mahdollisuudet ovat
hänellä jälellä.
Entä hän itse, Helmi, mitä hän menettää? Uskon ihmisyyteen ja
omaan voimaansa. Mutta hänkin voittaa sentään jotakin: saa varman
tulevaisuuden ja hyvän maineen. Ja kun aika kuluu niin ehkäpä hän
oppii tämän lisäksi älyämään, ettei talontyttö, vaikkapa
kaksinkertaisesti langennutkin, sittenkään oikein sovellu sällimiehelle
ja että sellaisella useimmiten kaikesta huolimatta on paremmatkin
ottajansa.
Eikä Saaren Helmi tunne omaa nauruaan, kun hän naurahtaa,
ajatellessaan, mitä Suontaan Heikki lopulta on voittanut:
huononpuoleisen naisihmisen, joka lisäksi on häntä verisesti
pettänyt, mutta lohdutukseksi jonkun verran maata, rahaa ja
tavaraa. Eivätkö Suontaat ole sen suunnan väkeä, että osaavat
lohduttautua silläkin.
Silmänräpäykseksi Helmi jäykistyy ajatellessaan Heikkiä: näinkö
hän vastaa toisen vilpittömään rakkauteen. Mutta samassa hän
keikahduttaa päätänsä taaksepäin. Niin täytyy ollakin, niin on
tahdottu ja kuka menee takaamaan toisen tunteiden aitoutta ja
vilpittömyyttä!
Nyt hän alkaa olla valmis. Hän huuhtelee kasvonsa huolellisesti
kylmällä vedellä, pukeutuu ja menee alas. Vieraseteisessä isä hänet
pysähdyttää.
"Minusta tuntui kuin joku olisi sieltä tullut aamuvarhaisella", sanoo
hän.
Helmi punastuu korviaan myöten, mutta voittaa heti itsensä.
"Ei se varhaista ollut", vastaa hän tavattoman kovasti ja
arkipäiväisesti. "Ihmiset liikkuivat jo tuvassa ja pihallakin."
Isä liikahtaa kuin tahtomattaan askeleen tytärtään kohti.
Korvapuusti ei tällä hetkellä ole varsin kaukana.
"Vai niin", virkahtaa hän sitten jääden odottamaan.
"Suontaan Heikki se oli. Tuli nousun aikana ja äsken lähti."
"Vai niin", tulee taas, mutta puhujan kasvoista ei huomaa, että
uutinen häntä ilahduttaisi.
"Kävi kysymässä, että saako hän tulla isänsä kanssa päivällä."
"Vai niin."
"Ja minä vastasin, että kun asiat niin päin näyttävät olevan, niin
eihän siinä muu auta."
Helmi aikoo mennä sisälle, mutta isän katse pidättää häntä. Helmi
säpsähtää sitä katsetta, siinä on melkein kammoa.
"Ihmiseksi sinä synnyit", sanoo Saaren Juhani viimein, "ja
ihmiseksi sinua on koetettu kasvattaa, mutta nyt en tiedä, vaikka
olisit kotoisin helvetistä."
XVI
Suontaan vanha isäntä on saita ja laiha ja saituuttaan kai hän onkin
laiha. Hänen silmänsä ovat pienet ja tihruiset ja hänen äänensä kuin
kitisevän saranan. Housujenkin takamustat hänellä aina riippuvat
velttoina ja puku hänellä useimmiten on alapuolella keskinkertaista
olevaa laatua, mutta silti hän tietää arvonsa ja tahtoo, että muutkin
sen tietävät.
Mutta kun hän nyt harmajana syystalven päivänä ajelee poikansa
kanssa kotiin Saaresta, on hän kuin puulla päähän lyöty eikä hänen
ihmettelynsä löydä rajoja. Hän on odottanut pieniä kestejä,
hymyileviä naamatauluja ja sen sellaista, mutta näin nyt on käynyt:
Saaren Juhani on omissa puuhissaan eikä tule näkyviin ollenkaan ja
morsian vastaa juuri ja juuri sen verran, mikä on välttämätöntä.
Ainoa, joka näyttää tyytyväiseltä ja onnelliselta, on emäntä, mutta
sekin on kai — kuka tietää — koko loppuiäkseen sänkyyn tuomittu.
Ei ota Suontaan isäntä tätä käsittääkseen. Hyvä, että tuli vaan asia
myönteiseen suuntaan toimitetuksi.
"Ei näytty paljon merkitsevän", vikisee hän pojalleen. "Anna, jos
olisi pitäjässä parempia ollut, niin ei muuta kuin ajele koreasti vain
kotiisi, ajele pois!"
Poika ei nähtävästi kuuntele isänsä puhetta, murahtaa vain jotakin
epäselvää niinkuin kohteliaisuudesta tai velvollisuudentunnosta.
"Minä jo mennessämme ajattelin", jatkaa äijä, "että puhun nyt
koko asian valmiiksi loppuun asti…"
"No, tulihan se puhutuksi", tokaisee poika väliin.
"Tuli niinkuin tuli. Mutta minä ajattelin puhua niin, että sinä olisit
päässyt Saareen kotivävyksi. Meillä kun on jo sellainen entuudestaan
ja Saarikin alkaa jo tulla vanhaksi ja tarvitsee hyvinkin apulaisen…"
Pojan äänessä soi hieno iva, kun hän vastaa:
"Vai olitte te ajatellut niin pitkälle."
"Niinpä. Mutta menepä siinä juttelemaan, kun Saaren Juhani ei
pidä sen vertaa arvossa, että tulisi näkyvillekään."
"Ajatteli kai", sanoo poika samaan tapaan kuin äsken, "että
kahden kauppa, kolmannen korvapuusti."
Suontaan ukko ei pitkään aikaan vastannut mitään. Hänestä oli
koko kohtelu Saaressa ollut ällistyttävää, tuskinpa, että juuri ja juuri
vastata viitsittiin. Paitsi emäntä tietenkin, mutta sehän olikin aina
ollut sellainen pitkälle ajatteleva ihminen. Mietteissään hän sivaltaa
hevosta nopeampaan juoksuun rosoisella ja jäätyneellä, lumen hyvin
vähän peittämällä tiellä.
Mutta isän puheet olivat saaneet pojan ajatukset käyntiin. Ne
olivat uinuneet onnessaan viime tunnit, nyt ne heräsivät.
"Asia on niin", virkahti hän, "että jokainen nai itselleen. Kun minä
menen naimisiin, niin otan vaimon itselleni enkä teille. Onko selvä?"
Ukko hellittää ohjaksia ja luo pienillä tihruisilla silmillään häneen
kysyvän katseen: Mikä siihen nyt meni?
"Jos miniä on teille mieleinen", jatkoi poika, "niin sehän on sitä
parempi asia. Mutta ellei sattuisi olemaan, niin sitä ei voitaisi auttaa."
"Häh! Mihin sinä oikein tähtäät? Kuka sen on sanonut, ettei Saaren
Helmi olisi meille mieleinen."
"Siitähän juuri onkin kysymys ja minähän jo sanoin, että sitä
parempi.
Mutta mitä te siihen sitten sekoitatte kotivävyyttä ja sen sellaista!"
"No mutta saa kai sitä katsoa eteenpäin asioita."
"Saa kai, mutta minä katson nyt itse omat asiani."
"Katsot, mitä katsot", murahti ukko puoleksi itsekseen. "Nulikka
olet niin ikäsi kuin järkesikin puolesta."
Poika kuuli kaiken, muttei ollut kuulevinaan, jatkoi vain kuin muina
miehinä:
"Ellemme me Helmin kanssa mahdu Suontaahan, niin en minä
rupea liioin tunkeilemaan Saareen. Ettäs sen jo valmiiksi tiedätte!
Ellei kaksi tervettä, rakastavaista ihmistä, jotka osaavat tehdä työtä,
elä missä maailman kolkassa tahansa, niin sepä sitten on ihme."
Tämä on Suontaan vanhalle, kitsaalle äijälle aivan uutta oppia eikä
hän voi käsittää, mistä hänen poikansa on saanut sellaista päähänsä.
Varmuuden vuoksi hän ohimennen kysäisee:
"Sinä meinaat, että olisit ottanut Helmin, vaikka se olisi ollut tyhjä
kuin… kuin ravistunut saavi?"
"Niin."
95
Silloin vanha, laiha Suontaa tulee siihen johtopäätökseen, että
tämä nyt sitten on sitä rakkautta. Ja hyvä on, että se osui Saaren
Helmiin.
Miettiväinen hän on, kun hän kääntää hevosen taloon vievälle
tielle.
XVII
Ei näy arkinen viihtyisyys menestyvän Saaren talossa. Ennen siellä
aherrettiin ahkerasti aamusta iltaan ja illan tullen jokainen meni
tyytyväisenä levolle. Päivä toisensa jälkeen kului tasaisena ja
rauhallisena.
Mutta entä nyt! Tytär on miehelle menemässä, ainoa tytär kaiken
lisäksi, tuleva vävy on niitä mieluisimpia ja talossa pitäisi siis olla iloa
ja touhua. Vaan sen sijaan on talon elämä kuin pysähtynyt ja
asukkaista tuntuu ikäänkuin he vartioisivat toinen toistansa.
Hiiviskellään, supatellaan, katsellaan toisiaan syrjäsilmällä ja ollaan
kuin odotettaisiin jotakin ikävää.
Isäntä on aivan kuin hänellä ei olisi asian kanssa mitään
tekemistä.
"Suontaan isäntä kävi täällä kosimassa Helmiä pojalleen", kertoo
emäntä ja hänen kuluneet, jännittyneet kasvonsa loistavat ensi
kerran pitkästä aikaa.
"Vai niin. Mitäs Helmi?"
"Lupasi", vastaa emäntä äänen kuvastaessa riemua.
"Vai niin."
Siihen se jäi ja isäntä menee askareilleen, niinkuin sen
kummempaa ei olisi tapahtunut.
Eikä ole muuttunut Helmikään. Pitäisi olla iloinen ja onnellinen ja
on päinvastoin kuin mieleen olisi tullut suru. Ei hänellä ole
aiemminkaan ollut väelle erikoisempia sanottavia, nyt pitäisi olla joku
virkistävä sana silloin tällöin, mutta puhelahja näkyy tyyten
loppuneen. Mitä kihlautumista se sellainen on.
Muutamana päivänä sanoo Suontaan Heikki hänelle ujoisesti ja
tapaillen:
"Isä on sellainen vanhanaikainen mies. Se oli ajatellut, että minä
tulisin tänne niinkuin kotivävyksi, isällesi avuksi."
"Se on käsitettävää", vastasi Helmi hyvin arkisesti. "Teillähän on
siellä jo vävy entuudestaan ja tytär omasta takaa. Sinä, isäsi
poikana, tietenkin lupasit yrittää."
"Vastasin, että ellemme, sinä ja minä, meille mahdu, niin en
tungettele minnekään. Sanoin, että se nyt on kumma, ellei kaksi
tervettä ihmistä, jotka osaavat tehdä työtä, tule toimeen missä
maailman kolkassa tahansa."
Helmi kalpenee eikä voi vastata mitään. Mutta Suontaan Heikki ei
ole mitään huomannut, vaan jatkaa:
"Se on sellainen, se isä. Mutta siihen se sitten jäi. Huomautin
hänelle kerta kaikkiaan, että vaikkei sinulla olisi kotia eikä
ryysyjäkään ylläsi, niin… Mutta mikä sinun on?"
Saaren Helmi ei ollut voinut kuunnella enempää, vaan oli kätkenyt
päänsä käsiinsä ja purskahtanut itkuun. Kuitenkin hän pian tointui.
"Ei se mitään ollut", vastasi hän. "Minusta vain tuntui niin oudolta,
että minua noin rakastat."
Ja hetken kuluttua hän lisää:
"Mene jo taas, Heikki. Olen todellakin hiukan huonovointinen."
Siltä hän kylläkin näyttää. Sillä heti Suonpään Heikin mentyä vetää
hän sormestaan kihlasormuksensa ja asettaa sen pöydälle, riisuutuu
ja menee vuoteeseensa. Mutta kauan aikaa lampun sammuttua
kuuluu vuoteesta nyyhkytys ja nyyhkytysten väliltä valitus ja
voivotus.
Sellaisia päiviä vietetään nykyisin Hirvikylän Saaressa. Elämä on
lamassa ja surkastumaan päin, vain emäntä on, kuin rupeaisi hän
vähitellen toipumaan. Tosin se on hetkellistä, puuskittaista ja itsensä
kostavaa. Mutta joskus hän omin avuin ja suurella vaivalla nousee
vuoteestaankin ja ilmestyy yhtäkkiä tupaan väen keskelle. Ja kun
väki häntä silmät pyöreinä ja voimatta sanoa sanaakaan katselee,
sanoo hän äänellä, josta ei tiedä, onko siinä katkeruutta vaiko
leikillisyyden tapaista:
"Mitä siinä töllistelette? Kuolleistako luulitte minun nousseen?"
Välkkyvät, pistävät silmät katselevat vaanien joka soppea, sanat
ovat hiljaisemmat kuin ennen, mutta yhtä tiukat ja täsmälliset. Pian
hän kuitenkin on pakoitettu huohottaen menemään omaan
huoneeseensa.
Vaan eräänä iltapäivänä käskee hän emäntäpiian mennä
hakemaan taloon neulojan, Söterin Maijan ja hänelle jonkun avuksi.
Alusta viikon jo saisivat tulla.
Humahdus käy läpi talon.
Näin siis Saaressa alettiin valmistella häitä.
XVIII
"Kun et sinä koskaan käy talossa", sanoo Heikin sisko kerran
ollessaan
Saaressa Helmin luona vieraisilla. "Lienetkö koskaan käynyt meillä."
"Olen toki, vaikka taitaa siitä olla aikoja."
"Kävisit nyt. Eikö se kuulu vähän niinkuin asiaankin."
Helmi hymähtää ja punastuu lievästi ja toinen käsittää sen väärin.
"Ei oikein tahdo olla aikaa", vastaa Helmi viivytellen, ja Heikin sisar
nyökäyttää ymmärtävästi.
"Arvaa sen", nauraa hän.
Tosiasiassa Helmillä tällä kertaa ei ole mitään niin runsaasti kuin
aikaa. Hän ei kajoa mihinkään eikä tee mitään. Hänelle neulotaan,
hänestä otetaan mittoja, hänen ympärillään hyöritään ja hän antaa
sen tapahtua. Hän on antanut asian saada alkunsa ja nyt se menee
kuin itsestään hänen tarvitsematta nostaa sormeaankaan sen
auttamiseksi.
Mutta joskus hän pysähtyy ajattelemaan ja silloin häntä alkaa
kauhistuttaa. Ulkoa, ikkunaruutujen takaa, katselee häntä musta ja
tähdetön yö ja yön keskeltä kuin kavalat, irvistelevät kasvot. Mitä se
on? Henki salpautuu kurkkuun ja hän tahtoisi kirkaista, juosta alas ja
kertoa kaikki, mutta joku voima pidättää häntä. Sen sijaan hän
tarttuu kynään ja alkaa kirjoittaa. Siihen tulee verta ja tuskanhuutoa
joka riville, muttei sitä, mitä pitäisi.
"Ole kärsivällinen kanssani, rakas Niku. Ehkä kaikki muuttuu
piankin."
Edellisen hän uskoo, jälkimmäistä hän toivoo, muttei usko. Askel
on otettu ja se on peruuttamaton.
"Älä vastaa", lopettaa hän kirjeensä. "Se vain pahentaisi
asemaani."
Kuinka syvälle hän oli vaipuva ja millainen oli loppuratkaisu oleva.
Vai tuliko koko hänen loppuelämänsä olemaan jatkuvaa rangaistusta.
Helmi ei uskalla sitä ajatellakaan, hän karkoittaa kaikki tarpeettomat
ajatukset luotaan. Mistä hän saa siihen voiman? Kun hän öisin miettii
asiaa, tulee hän siihen johtopäätökseen, että piru itse on häntä
auttamassa.
Nytkin hänellä on kirje Nikolaille pöytäliinan alla. Pieni
kohottaminen vain ja asia olisi selvä.
"Käy nyt katsomassa", nauraa Suontaan Heikin sisar, "että tiedät,
minkälaiseen paikkaan joudut."
"Jos haluaisit niinkuin peräytyä", jatkaa hän sitten.
Helmi kohottaa katseensa ja näyttää siltä kuin hän ei käsittäisi,
mistä on kysymys.
"Heikkihän voi tulla tänne", sanoo hän. "Suontaassa kai on isäntiä
jo kaksittainkin."
Tulevan kälyn silmät välähtävät tyytyväisyydestä.
"Arveletko, että niin olisi parempi?" kysyy hän.
"Niin, en minä tiedä. Vaan ei kai teillä kolmea isäntää tarvita —
eikä emäntää myöskään."
Tämän sai Suontaan Heikin sisar ottaa aivan miltä kannalta itse
tahtoi. Helmiä tuskastutti jo pelkkä ajatuskin, että hänen täytyisi
käydä Suontaassa. Vaikka hän oli mennyt näin pitkälle, niin niin
pitkälle hän ei kuitenkaan menisi: Suontaan seinätkin saastuisivat,
jos hän astuisi niiden sisäpuolelle.
Mutta Heikin sisar on onnellinen. Hän nousee ja tekee lähtöä.
Parempaa vaimoa ei hänen veljensä voisi saada, ei missään
tapauksessa. Eikä hän voi olla sanomatta sitä Helmillekin.
Ja Helmin tekisi mieli taas itkeä tai — kirota. Mutta hän ei tee
kumpaakaan. Hänen olentonsa vain kuin jäykistyy ja käy
elottomaksi. Hän aikoo sanoa: "älä ennen aikaa kehu", muttei saa
sanotuksi sitäkään.
Sulhasen sisar katsoo häneen ihmetellen.
"Älä nyt suotta sen asian kanssa itseäsi vaivaa", kehoittaa hän.
"Miehelään sinä joka tapauksessa ennen pitkää olisit joutunut."
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookfinal.com

More Related Content

PDF
Instant download Solution Manual for MIS 10th Edition Hossein Bidgoli pdf all...
PDF
Professional Sql Server 2008 Administration With Windows Powershell 1st Editi...
PDF
Using MIS 9th Edition – Ebook PDF Version
PDF
(eBook PDF) Using MIS 9th Edition by David M. Kroenke
PDF
Download Study Resources for Solution Manual for MIS 10th Edition Hossein Bid...
PDF
Download full Solution Manual for MIS 10th Edition Hossein Bidgoli all chapters
PDF
Getting Started With Purequery V Rodrigues Et Al
PDF
(eBook PDF) M Information Systems 4th Edition
Instant download Solution Manual for MIS 10th Edition Hossein Bidgoli pdf all...
Professional Sql Server 2008 Administration With Windows Powershell 1st Editi...
Using MIS 9th Edition – Ebook PDF Version
(eBook PDF) Using MIS 9th Edition by David M. Kroenke
Download Study Resources for Solution Manual for MIS 10th Edition Hossein Bid...
Download full Solution Manual for MIS 10th Edition Hossein Bidgoli all chapters
Getting Started With Purequery V Rodrigues Et Al
(eBook PDF) M Information Systems 4th Edition

Similar to The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit Database Design 1st Edition Mark Horninger (20)

PDF
ASP NET Professional Projects 1st Edition Hersh Bhasin
PDF
ISE Business Driven Technology, 10e 10th Edition Paige Baltzan
PPTX
SQL Server 2012 aamiaisseminaari
PDF
(eTextbook PDF) for Management Information Systems: Managing the Digital Firm...
PDF
Microsoft Hyper V Cluster Design 1st Edition Eric Siron
PDF
Asset Protection through Security Awareness 1st Edition Tyler Justin Speed
PDF
Managing and Using Information Systems A Strategic Approach 6th Edition Pearl...
PDF
Oracle Soa Bpel Process Manager 11gr1 A Handson Tutorial Ravi Saraswathi
PDF
Readings In Database Systems Fourth Edition Joseph M Hellerstein
PDF
M Information Systems 4th Edition Baltzan Solutions Manual
PDF
R Data Analysis Cookbook 1st Edition Viswa Viswanathan
PDF
Human Resource Information Systems: Basics, Applications, and Future Directio...
PDF
Systems Analysis and Design 11th Edition Tilley Solutions Manual
PDF
Datakeskuksen tulevaisuus seminaari 101210 Osmo Laita Proact
PDF
Microsoft 365 Office A Comprehensive SharePoint 2024 Guide for Beginners and ...
PDF
Business Driven Information Systems 4th Edition Paige Baltzan Solutions Manual
PDF
(eBook PDF) Business-Driven Information Systems 3rd Edition
PDF
Test Bank for Accounting Information Systems, 10th Edition
PDF
M Information Systems 4th Edition Baltzan Test Bank
PDF
(eBook PDF) Management Information Systems for the Information 9th
ASP NET Professional Projects 1st Edition Hersh Bhasin
ISE Business Driven Technology, 10e 10th Edition Paige Baltzan
SQL Server 2012 aamiaisseminaari
(eTextbook PDF) for Management Information Systems: Managing the Digital Firm...
Microsoft Hyper V Cluster Design 1st Edition Eric Siron
Asset Protection through Security Awareness 1st Edition Tyler Justin Speed
Managing and Using Information Systems A Strategic Approach 6th Edition Pearl...
Oracle Soa Bpel Process Manager 11gr1 A Handson Tutorial Ravi Saraswathi
Readings In Database Systems Fourth Edition Joseph M Hellerstein
M Information Systems 4th Edition Baltzan Solutions Manual
R Data Analysis Cookbook 1st Edition Viswa Viswanathan
Human Resource Information Systems: Basics, Applications, and Future Directio...
Systems Analysis and Design 11th Edition Tilley Solutions Manual
Datakeskuksen tulevaisuus seminaari 101210 Osmo Laita Proact
Microsoft 365 Office A Comprehensive SharePoint 2024 Guide for Beginners and ...
Business Driven Information Systems 4th Edition Paige Baltzan Solutions Manual
(eBook PDF) Business-Driven Information Systems 3rd Edition
Test Bank for Accounting Information Systems, 10th Edition
M Information Systems 4th Edition Baltzan Test Bank
(eBook PDF) Management Information Systems for the Information 9th
Ad

The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit Database Design 1st Edition Mark Horninger

  • 1. Visit ebookfinal.com to download the full version and explore more ebooks or textbooks The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit Database Design 1st Edition Mark Horninger _____ Click the link below to download _____ https://ebookfinal.com/download/the-real-mcts-sql- server-2008-exam-70-433-prep-kit-database-design-1st- edition-mark-horninger/ Explore and download more ebooks or textbook at ebookfinal.com
  • 2. Here are some recommended products that we believe you will be interested in. You can click the link to download. MCTS Self Paced Training Kit Exam 70 640 Configuring Windows Server 2008 Active Directory 2nd Edition Dan Holme https://ebookfinal.com/download/mcts-self-paced-training-kit- exam-70-640-configuring-windows-server-2008-active-directory-2nd- edition-dan-holme/ MCTS Windows Server 2008 Active Directory Configuration Study Guide Exam 70 640 William Panek https://ebookfinal.com/download/mcts-windows-server-2008-active- directory-configuration-study-guide-exam-70-640-william-panek/ MCITP Self Paced Training Kit Exam 70 646 Windows Server 2008 Server Administrator 2nd Edition Ian Mclean https://ebookfinal.com/download/mcitp-self-paced-training-kit- exam-70-646-windows-server-2008-server-administrator-2nd-edition-ian- mclean/ MCTS Self Paced Training Kit Exam 70 662 Configuring Microsoft Exchange Server 2010 Pro Certification Orin Thomas https://ebookfinal.com/download/mcts-self-paced-training-kit- exam-70-662-configuring-microsoft-exchange-server-2010-pro- certification-orin-thomas/
  • 3. MCTS Self Paced Training Kit Exam 70 236 Configuring Microsoft Exchange Server 2007 PRO Certification Orin Thomas https://ebookfinal.com/download/mcts-self-paced-training-kit- exam-70-236-configuring-microsoft-exchange-server-2007-pro- certification-orin-thomas/ Exam 70 646 Windows Server 2008 Administrator 1st Edition Zacker https://ebookfinal.com/download/exam-70-646-windows- server-2008-administrator-1st-edition-zacker/ MCSA MCSE McDba Self Paced Training Kit Microsoft SQL Server 2000 System Administration Exam 70 228 2nd Edition Microsoft Corporation https://ebookfinal.com/download/mcsa-mcse-mcdba-self-paced-training- kit-microsoft-sql-server-2000-system-administration-exam-70-228-2nd- edition-microsoft-corporation/ MCITP Self Paced Training Kit Exam 70 646 Windows Server Administration Ian Mclean https://ebookfinal.com/download/mcitp-self-paced-training-kit- exam-70-646-windows-server-administration-ian-mclean/ MCITP Guide to Microsoft Windows Server 2008 Server Administration Exam 70 646 1st Edition Michael Palmer https://ebookfinal.com/download/mcitp-guide-to-microsoft-windows- server-2008-server-administration-exam-70-646-1st-edition-michael- palmer/
  • 5. The Real MCTS SQL Server 2008 Exam 70 433 Prep Kit Database Design 1st Edition Mark Horninger Digital Instant Download Author(s): Mark Horninger ISBN(s): 9781597494212, 1597494216 Edition: 1st File Details: PDF, 15.04 MB Year: 2009 Language: english
  • 7. Mark Horninger Technical Editor Valentine Boairkine and Herleson Pontes Lead Authors Dinesh Asanka Denny Cherry Justin Langford Steve Long Bret Stateham Sylvia Vargas Database Design
  • 8. Elsevier, Inc., the author(s), and any person or firm involved in the writing, editing, or production (collectively “Makers”) of this book (“the Work”) do not guarantee or warrant the results to be obtained from the Work. There is no guarantee of any kind, expressed or implied, regarding the Work or its contents.The Work is sold AS IS and WITHOUT WARRANTY.You may have other legal rights, which vary from state to state. In no event will Makers be liable to you for damages, including any loss of profits, lost savings, or other incidental or consequential damages arising out from the Work or its contents. Because some states do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you. You should always use reasonable care, including backup and other appropriate precautions, when working with computers, networks, data, and files. Syngress Media®, Syngress®,“Career Advancement Through Skill Enhancement®,”“Ask the Author UPDATE®,” and “Hack Proofing®,” are registered trademarks of Elsevier, Inc.“Syngress: The Definition of a Serious Security Library”™,“Mission Critical™,” and “The Only Way to Stop a Hacker is to Think Like One™” are trademarks of Elsevier, Inc. Brands and product names ­ mentioned in this book are trademarks or service marks of their respective companies. PUBLISHED BY Syngress Publishing, Inc. Elsevier, Inc. 30 Corporate Drive Burlington, MA 01803 The Real MCTS SQL Server 2008 Exam 70-433 Prep Kit Copyright © 2009 by Elsevier, Inc.All rights reserved. Printed in the United States of America. Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of the publisher, with the exception that the program listings may be entered, stored, and executed in a computer system, but they may not be reproduced for publication. Printed in the United States of America 1 2 3 4 5 6 7 8 9 0 ISBN 13: 978-1-59749-421-2 Publisher: Laura Colantoni Project Manager: Heather Tighe Acquisitions Editor: Rachel Roumeliotis Page Layout and Art: SPi Technical Editor: Mark Horninger Copy Editors:Adrienne Rebello, Developmental Editor: Gary Byrne Leslie Crenna, Betty Pessagno Indexer: SPi Cover Designer: Michael Kavish For information on rights, translations, and bulk sales, contact Matt Pedersen, Director of Corporate Sales, Elsevier; email m.pedersen@elsevier.com. Library of Congress Cataloging-in-Publication Data Application submitted
  • 9. Valentine Boiarkine (MCSE, MCDBA, MCSD, MCT) is a founding partner at Blade Ltd., a software consulting firm based inWellington, New Zealand. She is the lead architect of the revolutionary Blade File Transfer System file transfer technology.Valentine has over 10 years’ consulting and software development experience, and she specializes in enterprise software integration, security, IT alignment, and unified communications. She has designed distributed software solutions for financial, legal, and government organizations. Mark Horninger (A+, Net+, Security+, MCSE+I, MCSD, MCAD, MCDBA, MCTS, MCITP, MCPD) is manager of database operations at Internet Pipeline, Inc. He is also the founder of Haverford Consultants, Inc. (www.haverford- consultants.com/), located in the suburbs of Philadelphia, PA. He develops custom applications and system engineering solutions, specializing primarily in Microsoft .NET technology and Microsoft SQL Server. He is a contributing author to Securing SQL 2005, Configuring andTroubleshootingWindows XP Professional MCSEWindows 2000 Professional Study Guide and Designing SQL Server 2000 Databases for .NET Enterprise Servers published by Syngress, an imprint of Elsevier Inc. Mark has also served as an adjunct professor at Kaplan University teaching Web design. Mark has over 20 years of computer consulting experience and has passed 50+ Microsoft Certification Exams. He lives with his wife, Debbie, and son, Robby, in the Philadelphia area. Mark would like to thank his wife, Debbie, for her infinite patience, love, and support during this project. Lead Authors iii Technical Editor
  • 10. Valentine is the author of numerous technical training courses, guides, and white papers for Microsoft Corp. and Quest Software, including SQL Server Microsoft Official Curriculum titles. She is also an accomplished trainer and presenter. She frequently trains support engineers at Microsoft and Microsoft partners worldwide. Her technology expertise lies in SQL Server, .NET development, Exchange Server, and Office Communications Server.Valentine resides in ­ Auckland, New Zealand, with her husband, Keith, and children Spencer and Alexander. Herleson Pontes (MVP, MCT, MCITP, MCTS, MCP, MOS) is an IT ­ consultant, writer and trainer of desktop,Web, and mobile environments, with more than eight years of expertise. He currently provides technical consulting and IT training to companies and Microsoft CPLS all over Brazil. His specialties include Microsoft SQL Server, Microsoft Windows Server System,Windows Desktop Client, Microsoft Desktop Optimization Pack, database design and implementation, strategic BI planning, system architecture and design, and IT environment ­ troubleshooting and optimization. Herleson is a key speaker, writer, and contributor to many publications and Microsoft communities of Brazil. Herleson holds a bachelor’s degree in information systems and is a student working toward his master’s degree in applied informatics from the University of Fortaleza. Herleson currently resides in Fortaleza, Ceará, with his wife, Priscila, and family. iv
  • 11. Dinesh Asanka (MVP SQL Server, B.S. [Eng], MBA [IT]) is a database architect at Exilesoft (Pvt) Ltd. He is primarily involved in designing databases in SQL Server. Dinesh has been working with SQL Server since 2000 starting from version 7. Dinesh is a regular columnist for popular Web sites, including sql-server-performance.com, sqlservercentral.com, and sqlserveruniverse. com. Besides writing, Dinesh is actively involved in presentations for the SQL Server Sri Lankan User Group (SS SLUG). Dinesh holds a bachelor’s degree in engineering and an MBA from the University of Moratuwa, Sri Lanka. Denny Cherry (MCSA,MCDBA,MCTS,MCITP) is a senior database administrator and architect for Awareness Technologies. He currently handles all database change design and implements changes to both the companies’ASP solution as well as the consumer hosted versions of the product. In addition Denny manages the Infrastructure Team, which maintains the 100-plus server environment. Denny’s background includes database administration and database engineering positions at MySpace.com, IGN.com, GameSpy.com, and EarthLink Networks. In 2008 Denny was named to the Quest Software Customer Advisory Board, and in 2009, Denny was named as a Microsoft MVP. Denny has written dozens of articles related to SQL Server, both for print magazines and various Web sites. Justin Langford (MCSE, MCITP, MCDBA, SNIA, CCNA, ITIL) is a principal consultant for Coeo Ltd, a Microsoft Gold Partner in London. Coeo provides SQL Server consulting services for upgrade, performance tuning, scalability, and availability solutions for all versions of SQL Server. Coeo offers remote DBA services to customers who outsource management and 24×7 operations of their SQL Server Contributing Authors v
  • 12. platforms. Justin delivers and maintains SQL Server solutions for customers in many different industry sectors throughout Europe. Prior to joining Coeo,Justin spent three years working at Microsoft UK as a premier field engineer. In this role, Justin delivered SQL Server support consulting to some of Microsoft’s largest finance and government customers in Europe. Justin has also coauthored Wrox IT Pro: SQL Server PerformanceTuning. Steve Long is a senior software engineer/systems analyst atWilmington Trust. Steve has over 14 years of database and application design and development experience. He currently provides database and application support to trading applications and processes using Microsoft technologies. He also serves as technical lead on significant projects in addition to lending his infrastructure, project management, and business process expertise to all initiatives. Before making a full-time switch to the information technology field, Steve spent a number of years working in the accounting field. Steve holds a bachelor’s degree from Goldey-Beacom College in Wilmington, Delaware, and a Client/Server Technology certification from Pennsylvania State University. He is currently working toward his graduate degree at Goldey-Beacom. Steve wishes to thank his coworkers for putting up with him every day and his family for their understanding and support during his writing. Bret Stateham (MCT, MCSE, MCTS, MCITP) is the owner of Net ConnexTechnologyTraining and Consulting, LLC, located just outside San Diego, CA. Net Connex provides consulting and training services that are focused primarily on Microsoft server platforms. Bret has over 20 years of experience in the industry and over 10 years as a trainer. He has been working with SQL Server since version 6.5 and has been teaching SQL Server since version 7.0. Bret has contributed to multiple Syngress SQL Server publications starting with Designing SQL Server 2000 Databases for .Net Enterprise Server. He stays involved with the community by helping to organize the Socal Code Camp and he is a frequent speaker at Code Camps and User Groups.Bret lives in Ramona, CA, with his wife, Lori; son, Chase; and daughter, Katie. vi
  • 13. Sylvia Vargas has been working with information technology since 1981. Sylvia’s experience in SQL Server started in 1997, although she has over 20 years’ experience in other relational database ­ technologies, including IBM SQL/DS, Digital Equipment Corp.’s RDB, and Oracle. She has worked for state and local governments; Fortune 500 companies, such as Boeing, Disney, and Texaco; and a broad number of industries, including finance, manufacturing, Internet, and utilities. She has been a developer, DBA, and manager on everything from a SQL/DS running on an IBM/Oracle system running UNIX to SQL Server and DB2 installations. Sylvia has an undergraduate degree from Fordham University and an MBA from Pace University in NewYork. She has worked at Microsoft since 2006. Sylvia lives in Seattle,WA, and enjoys bicycling, genealogy, and the great theatre in the Seattle area. Sylvia also teaches part-time at the University of Washington’s Extension Certificate Program ­ teaching SQL Server Development. vii
  • 15. Chapter 1 New Features in SQL Server 2008. . . . . . . . . . . . . . . . . . . . . . . 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 A Word About the Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 New Feature Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Compressed Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Enhanced Configuration and Management of Audits. . . . . . . . . . . . . . . . 8 New TableValue Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 FileStream Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Sparse Column Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Encryption Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Key Management and Encryption. . . . . . . . . . . . . . . . . . . . . . . . . . . 13 High Availability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Performance Data Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Resource Governor (Similar to Query Governor). . . . . . . . . . . . . . . 14 Freeze Plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 SQL Server 2008 Declarative Management Framework. . . . . . . . . . . . . 16 Development Improvements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 LINQ Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 MERGE Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Spatial Data Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Analysis Services Improvements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 ETL/SSIS Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Reporting Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 No Longer Requires IIS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Better Graphing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Export to Word Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Deprecated Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Discontinued Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . . 23 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Contents ix
  • 16. x Contents Chapter 2 Implementing Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Understanding DDL and DML Language Elements. . . . . . . . . . . . . . . . . . . 32 Performing a Conditional Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Working with Tables, Constraints, and Indexes. . . . . . . . . . . . . . . . . . . . . . . 38 Working with Tables andViews. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Creating Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Computed Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Creating User-Defined Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . 42 Working with Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Enforcing Referential Integrity through FOREIGN KEY Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Creating Indexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Working with Full-Text Indexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Partitioning Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Horizontal Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Vertical Partitioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Viewing and Modifying Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 CreatingViews. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Creating Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Creating Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Creating Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . . 73 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Chapter 3 Programming Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Implementing Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Advantages and Limitations of UDFs. . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Scalar Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Example: Creating and Consuming a Scalar Function. . . . . . . . . . . . 90 Table-Valued Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Example: Creating and Consuming a Table-Valued Function and an Inline UDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Managing User-Defined Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Managing User-Defined Function Security. . . . . . . . . . . . . . . . . . . . . 101 Working with Deterministic and Nondeterministic Functions . . . . . . . 102 Implementing Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
  • 17. Contents xi Creating Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Example: Creating and Consuming a Stored Procedure. . . . . . . . . . 107 Managing Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Managing Stored Procedure Security. . . . . . . . . . . . . . . . . . . . . . . . . . 111 Adjusting Transaction Isolation Levels. . . . . . . . . . . . . . . . . . . . . . . . . 112 Implementing Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Creating DML Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Example: Creating and Consuming a DML Trigger. . . . . . . . . . . . . 121 Creating DDL Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Example: Creating and Consuming a DDL Trigger. . . . . . . . . . . . . 125 Creating Logon Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Example: Creating and Consuming a Logon Trigger. . . . . . . . . . . . 127 Using Recursive and Nested Triggers . . . . . . . . . . . . . . . . . . . . . . . . . 129 Managing Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 134 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Chapter 4 Using the CLR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 CLR and Managed Code Explained. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 CLR Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Languages Supported. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 What Is the Base Class Library? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Registering CLR Assemblies for Use with SQL Server. . . . . . . . . . . . . . . 158 Understanding Permission Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Implementing SQL Server Objects Using Managed Code. . . . . . . . . . . . . 165 Creating CLR Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Registering CLR Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Creating CLR Aggregates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Registering CLR Aggregates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Creating CLR Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Creating CLR Triggers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Creating User-Defined Data Types Using the CLR. . . . . . . . . . . . . . . 181 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 191 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
  • 18. xii Contents Chapter 5 Implementing Error Handling. . . . . . . . . . . . . . . . . . . . . . . . 203 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Understanding Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Error Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 sys.messages CatalogView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Severity Level. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Scenarios of Use. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Managing and Raising User-Defined Errors. . . . . . . . . . . . . . . . . . . . . . . 208 System Procedures and Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . .208 Example: Creating User-Defined Error Messages. . . . . . . . . . . . . . . 210 Raising User-Defined Error Messages. . . . . . . . . . . . . . . . . . . . . . . . . 216 Example: Raising Messages Using the RAISERROR Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Handling Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 @@ERROR Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Example: Handling Errors with @@ERROR Function. . . . . . . . . . 228 TRY…CATCH Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Example: Handling Errors with a TRY…CATCH Block. . . . . . . . . 233 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 240 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Chapter 6 Implementing Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . 251 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Transactions Explained. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Named Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Nesting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Commit and Rollback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Save Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 ACID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Atomicity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Consistency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Isolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Durability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Isolation Level Explained. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Locking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Deadlocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Transaction Traps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Troubleshooting Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
  • 19. Contents xiii Transaction Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 274 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Chapter 7 Working with DML Queries . . . . . . . . . . . . . . . . . . . . . . . . . 285 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Using the INSERT Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Using the INSERT Statement with the VALUES Clause. . . . . . . . . . . 289 Using the INSERT…SELECT Statement to Insert Query Results into a Table. . . . . . . . . . . . . . . . . . . . . . . . . . 291 Using the INSERT Statement with the EXECUTE Clause. . . . . . . . . 292 Using the INSERT Statement with the TOP Expression. . . . . . . . . . . 294 Using the UPDATE Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 UPDATE Statement Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Understanding the Column.WRITE Expression. . . . . . . . . . . . . . . . . . 305 Using the DELETE Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 DELETE Statement Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Using the MERGE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 MERGE Statement Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 322 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Chapter 8 Using Advanced Functionality with DML. . . . . . . . . . . . . . . 341 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Using @@IDENTITY and NEWID Functions in DML Statements. . . . . 343 Using IDENTITY_INSERT to Insert ExplicitValues into Identity Columns . . . . . . . . . . . . . . 347 Using the NEWID Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Returning Data from DML Operations Using the OUTPUT Clause. . . . . 352 Using the OUTPUT Clause with the MERGE Statement . . . . . . . . . . . . 357 Performing Nonlogged DML Operations. . . . . . . . . . . . . . . . . . . . . . . . . 359 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 368 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
  • 20. xiv Contents Chapter 9 Working with Multiple-Source Queries. . . . . . . . . . . . . . . . 383 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Using Linked Servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 How a Linked Server Works. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 Configuring a Linked Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 Provider Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 Using Four-Part Database Names. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 The DTC Explained. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 OpenQuery, OpenRowSet, and OpenDataSource Explained. . . . . . . . . . . 397 OpenDataSource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 OpenQuery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 OpenRowSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 Multiple Sources with SQL Server Integration Services. . . . . . . . . . . . . . . 400 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 412 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Chapter 10 Demystifying Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Built-in Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .420 Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 Cast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 Convert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Len . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 Right and Left Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Replace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 Charindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Patindex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 Computed Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438 Filestream Data Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Boxing and Unboxing:The Cost. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 445 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
  • 21. Contents xv Chapter 11 Explaining Advanced Query Techniques. . . . . . . . . . . . . . 451 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 Implementing CTE (Common Table Expression) Queries. . . . . . . . . . . . . 452 Creating CTEs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 Creating Recursive CTEs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 Applying Ranking Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 Using ROW_NUMBER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Using RANK, DENSE_RANK and NTILE. . . . . . . . . . . . . . . . . . . . 466 Controlling Execution Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 Understanding Hints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .471 Using Query Hints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 Using Table Hints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 Using Join Hints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 Using the Query Governor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 Using the Resource Governor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 Managing Internationalization Considerations. . . . . . . . . . . . . . . . . . . . . . 486 Understanding Collations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 Defining Language-Specific Custom Errors. . . . . . . . . . . . . . . . . . . . . 492 Creating and Altering Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 Sparse Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 Row Compression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 Page Compression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 Estimating Compression Savings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 505 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Chapter 12 Explaining XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 Retrieving and Transforming XML Data. . . . . . . . . . . . . . . . . . . . . . . . . . 520 Transforming XML Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 OPENXML, sp_xml_preparedocument, and sp_xml_removedocument . . . 525 XQuery and XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 XML Indexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 Well-Formed XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 XML Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
  • 22. xvi Contents Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 550 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Chapter 13 Performance Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Working with Query Execution Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Compilation and Recompilation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 Cost-Based Optimization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Capturing Query Execution Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Graphical Execution Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 Text-Based Execution Plans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 Interpreting Graphic Execution Plans . . . . . . . . . . . . . . . . . . . . . . . . . 564 Reading Execution Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 Estimated and Actual Execution Plans. . . . . . . . . . . . . . . . . . . . . . . . . 565 Tracing with SQL Profiler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 Trace Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 Trace Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 Trace Filters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 Server-Side Tracing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 Combining System Monitor and Profiler Traces. . . . . . . . . . . . . . . . . . 575 Replaying Traces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 Using SQLDiag to Collect Performance Data. . . . . . . . . . . . . . . . . . . 576 Working with Database Tuning Advisor. . . . . . . . . . . . . . . . . . . . . . . . . . . 578 Capturing a Workload. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Performing Analysis with DTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 Implementing DTA Recommendations . . . . . . . . . . . . . . . . . . . . . 584 Using Dynamic ManagementViews. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 Summary of Exam Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 Exam Objectives Fast Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 Exam Objectives Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . 591 Self Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 Self Test Quick Answer Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Companion Web Site: An appendix with coverage of other components in SQL and a more detailed answer key for the Self Test questions in this book are available on theWeb. Go to www.elsevierdirect.com/companions/9781597494212.
  • 23. 1 Exam objectives review: ˛ Summary of Exam Objectives ˛ Exam Objectives Fast Track ˛ Exam Objectives Frequently Asked Questions ˛ Self Test ˛ Self Test Quick Answer Key Exam objectives in this chapter: New Feature Overview ■ ■ Reporting Services ■ ■ New Features in SQL Server 2008 Chapter 1 MCTS SQL Server 2008 Exam 433
  • 24. 2 Chapter 1 • New Features in SQL Server 2008 Introduction Congratulations on your journey to become certified in SQL Server 2008.This book will help prepare you for your exam and give you a practical view of working with SQL Server 2008. SQL Server 2008 is a fantastic product when you think about all it does. I’ve worked with SQL Server since the days of 6.5, and it’s come a long way since then. In this chapter, we will briefly review the new features in SQL Server 2008. There are quite a few enhancements to SQL Server, many of which will make the job of the DBA much easier. One of these, the new performance data management system, allows for database statistics and performance information to be automatically captured across an enterprise. While this chapter covers the new features in SQL Server 2008, bear in mind many of the “basic” features of SQL will also be covered on the test.This book will not only cover the new features but also the topics from earlier versions of SQL Server that have not changed, as you will also need to know these items. Head of the Class… Know and Understand All SQL Server 2008 Features Be sure you understand all of the topics in this book before attempting the test. It will cover old and new features, so don’t limit your studying to just the new features. This will help you not only when it comes to the test, but also in using SQL Server 2008 in general. A Word About the Test On your testing day, make sure you arrive rested and ready to sit for the exam. Be calm and read each question carefully. Microsoft doesn’t try to trick you; however, the questions and answers are presented in such a way that you should think about each question before answering it. When you take your exam, be sure to leave no question unanswered. Most questions are multiple choice, so if you can narrow it down to two possible answers,
  • 25. New Features in SQL Server 2008 • Chapter 1 3 you have a 50–50 chance at getting the question right—although this book will do an excellent job of preparing you for the exam. If you are not sure of the answer to a question, sometimes it’s good to skip that question and move on and come back to it.Another question may jog your memory, and when you come back to the first question the answer is much clearer. When you go in for your test, don’t bring pagers, laptops, cell phones, and so on.They will not allow you to bring them in.Also be sure to bring two forms of ID. Most testing centers have video cameras, and you are taped during the exam to deter cheating. Test Day Tip Be sure to read each question completely before answering! Sometimes there is a more “correct” answer than the first answer in the list. While there may be more than one correct answer, one solution may be better than another. Test Day Tip Make certain you know which features go with which edition. You can be sure that some answers will be presented in such a manner as to test your knowledge of editions. New Feature Overview SQL Server 2008 has many new features for the DBA and database developer. With these features, Microsoft was able to achieve its vision of managing data more efficiently. The following section is meant to provide a high-level overview of many of the new features found in SQL Server 2008. Installation The new SQL Server Installation Center offers many more options. Figure 1.1 will familiarize you with the new tool.
  • 26. Discovering Diverse Content Through Random Scribd Documents
  • 27. Helmi rauhoittuu täydelleen. Se oli vain sitä tavallista. Ehkäpä tästä pian pääsee lähtemään. Vaan kun hän palaa vastapäisellä seinällä olevan vaatekaapin luota, ei hän ole tuntea äitiään. Kellertävät kasvot ovat käyneet kaamean kalpeiksi, silmät palavat kuin tulen liekki, hän on noussut puoliväliin istualleen, ja suupielet nyähtelevät. "Tyttö!" tulee käheästi ja raivokkaasti. "Sinun… nyt minä huomaan sen… sinun asiasi eivät ole oikealla tolalla." Helmi kalpenee, alkaa vavista ja pysähtyy auki levitetty nenäliina kädessään keskelle lattiata. "Mi… mitä te oikein tarkoitatte?" sopertaa hän. "Mitäkö tarkoitan!" Saaren emännän ääni on enemmän kihisemistä ja vinkumista kuin kiljahdusta. "Mitäkö tarkoitan!" parkaisee hän toisen kerran. "Et kai sinä ole niin vastasyntynyt, ettet sitä itsekin älyäisi." Tässä se nyt oli. Maailma tummenee Helmin silmissä, menee aikaa, ennenkuin hän saa kootuksi malttinsa voidakseen edes jotakin vastata. "Se ei ole mahdollista", sanoo hän sitten kuiskaamalla. "Mahdollista! Mutta kuka… kenelle…!" Saaren emännän raivolla ei ole rajoja. Mutta Helmi on nyt saavuttanut mielenmalttinsa. Sen verran hän älyää, että vielä on
  • 28. syrjäisen melkein mahdoton mitään huomata. Se on johonkin perustuvaa epäluuloa, mutta varmaa ja — totta epäluuloa. "Sano minulle heti", huudahtaa äiti kiivaasti, "kenelle sinä… Voi taivas!" "Te olette sairas, äiti", vastaa Helmi rauhallisesti ja maanitellen. "Te olette sairas ja tarvitsette lääkäriä. Minä menen soittamaan." "Lääkäriä! Sinä tarvitset lääkäriä ja sinusta hän saa ottaa selon! Ja poliisia vielä lisäksi!" Nyt Saaren tyttären silmät leimahtavat ja poskille syttyvät punaiset täplät. "Joskin niin olisi", sanoo hän harvakseen ja hammasta purren, "niin minkä yksi köyhä, oppimaton poliisi sille mahtaisi! Mutta kun ei ole!" "Sinä… ulos, mene paikalla tiehesi ja käske isäsi tänne!" Helmi ei enää rupea vastustelemaan. Hän kiertää välikamarien ja salin kautta vierasporstuaan ja menee sieltä ylös omaan huoneeseensa. Porstuassa ollessaan hän kuulee, kuinka ovi käy ja isä menee äidin luo. Hän vavahtaa, mutta yhä hän uhmaten pitää päätään pystyssä. * * * * * Vasta kun hän pääsee lämpimään, kodikkaaseen huoneeseensa, hänen hermovoimansa pettävät ja hän vaipuu itkien levitetylle vuoteelleen.
  • 29. Ei tästä enää mitään tule. Pois hän täältä tahtoo. Hän lähtee jo ensi yönä Nikun luo, kyllä he tulevat toimeen. Mutta voiko hän lähteä, olematta äitinsä murhaaja. Ja maailma on niin kylmä ja kavala, nytkin siellä sataa kylmää, kosteaa räntää ja tie asemalle on pitkä. Erehdys. Oli jo herennyt satamasta räntää, ilma oli pakastunut ja taivaalla vilkkuivat kirkkaat tähdet.
  • 30. XIII Kun Saaren isäntä illalla kiipeää tyttärensä kamariin, on hän huolestuneen ja tuskastuneen näköinen. Helmi on jo sytyttänyt lampun ja hänen kasvonsa ovat kalpeat ja itkettyneet. Hän ei kuule oven käyntiä ja, kun hän äkkiarvaamatta näkee isänsä takanaan, kiljaisee hän pelästyksestä ja vetäytyy kokoon aivan kuin isä aikoisi häntä lyödä. "Mitä säikkyilet. Ei kai sinulla ole huono omatunto?" Helmi pelästyy yhä enemmän. Mutta Saaren Juhani ei ole lainkaan lyövän näköinen, vaan valitsee paikan ja istuu pitkän tovin äänettömänä. "Äitisi on siellä kovin huonona", sanoo hän vihdoin. "Lääkäri määräsi sille jotakin rauhoittavaa. En tiedä, mitä se oli." Helmillä ei ole mitään vastattavaa. "Oliko teillä jotakin sanan vaihtoa?" kysyy isä vähän ajan kuluttua. "Ei. Mutta äiti kuvittelee kaikenlaisia ja kiihoittaa itseään suotta… ja sitten käy niinkuin käy."
  • 31. "Helmi. Sinä tiedät niinkuin minäkin, ettei äiti ole pitkä-aikainen keskuudessamme… Oliko se jotakin siitä Suontaan pojasta ja sinä vastasit ynseästi." "En minä muista, mitä se oli. Olen nyt itsekin kipeä." "Se on ikävää. Tarvittaisiin äitisi hoitamisessa, mutta pitänee ottaa hoitaja muualta." Isä on taas vaiti. Olisiko äiti kertonut, — niin, miksei olisi, on vain odotettava, mitä tulee. Vihdoinkin: "Äiti jutteli, vielä tohtorin tultuakin, käsittämättömyyksiä, enkä mitenkään tahtonut saada häntä olemaan vaiti." Nyt, nyt se tulee välttämättömyyden pakosta. Paras, kun nyt olisi mahdollisimman kaukana täältä. Mutta Saaren Juhani on taas aikansa vaiti. Sitten hän luo surullisen katseen tyttäreensä. "Sellaisia asioita puheli, että minua oikein kauhistutti. Mutta sairas on sairas ja minä tiedän kyllä, mitä minun pitää uskoa ja mitä ei." Eikö nyt olisi selvintä langeta polvilleen, tunnustaa kaikki ja, pyytää anteeksi ja sitten lähteä. Mutta koko Helmin olento on kuin herpautunut ja ajatusvoima turtunut. Hän istuu vain paikallaan ja silmät katsovat suoraan eteen. "Jos minä lähtisin pois — joksikin aikaa", aloittaa hän viimein neuvottomasti.
  • 32. "Ei, se olisi vain pahennukseksi. Koettaisit sen sijaan jollakin tavalla sovittaa." "Niin, mutta miten?" "En osaa sitä sanoa. Sinun itsesihän se pitäisi parhaiten tietää. Me olemme, äitisi ja minä, aina katsoneet parastasi emmekä ole tähän mennessä kylläkään saaneet kokea epäkiitollisuutta ja kunnioituksen puutetta puoleltasi." Isä nousee niinkuin sanottavansa sanonut. Mutta ovelle tultuaan hän vielä pysähtyy ja kääntyy ympäri. "Oliko teillä puhetta siitä, siitä…?" Helmi arvaa kyllä, kenestä on kysymys. "Ei ollut", vastaa hän. "Se on hyvä. Koeta sinäkin unohtaa joutavuudet." Taas hän empii, ennenkuin jatkaa: "Lopettaisit sen kirjepuuhankin. Jos muistaa, niin, kun aika tulee, muistaa muutenkin. Saattaa sinulle kirjoitella, vaikka toinen jo onkin kärryillä. Tiedetään ne sällimiehet ja kaupunkipaikat." Painaa oven jälessään kiinni ja menee portaita alas. * * * * * Seuraavana yönä ei Helmi saa unta silmiinsä ja vielä päivän valjetessa hän makaa valveillaan. Hänestä tuntuu kuin koko maailma
  • 33. olisi sekaisin ja kun hän yön kuluessa ei olisi ajatellut yhtään selvää ajatusta. Ja kuitenkin hän on olevinaan selvillä yhdestä asiasta. Sarkan Nikolai ei saa häntä enää rakastaa, hänen täytyy siis häntä vihata. Mutta ketä hän, Helmi, pettää: itseään, Nikuako vaiko kaikkia, koko maailmaa. Ah, Nikolai, minä olin sinulle kuin köyhän miehen ainoa lammas, joka vietiin. Sinulla ei ollut edes vanhempia, omasi olin vain minä, siinä suhteessa olit minua samalla kertaa onnellisempi ja onnettomampi. En voi tulla luoksesi haudan yli, mutta sittenkään älä unohda minua. Ellet rakasta, niin vihaa, kun vaan muistat. Näin hän aikoo kirjoittaa, muttei kirjoita mitään — toistaiseksi. Tulkoon nyt, mitä tulee. Aamulla, kun hän menee tupaan, ovat hänen kasvonsa yhäkin kalpeat ja väsyneet, mutta katse on teräksinen ja kirkas ja hän antaa määräyksiä niin lyhyesti ja täsmällisesti, että väki säpsähtää ja katsoo häneen kummeksien.
  • 34. XIV Saaren Helmi odottelee eikä hän itsekään tiedä, mitä hän odottelee, mutta jotakin vaan, joka pakosta on tuleva. Hänen hermonsa ovat paatuneet, hän on valmis vastaanottamaan mitä muuta tahansa kuin häpeän ja siihen kuuluvat ihmisten katseet. Sarkan Nikolaille on hän kirjoittanut, pyytänyt häntä olemaan työssä ja touhussa, mutta kirjoittamaan harvemmin. Kirjeet herättävät huomiota, oli hän sanonut. Eikö työ ole surun paras lääke? kysyi hän itseltään vaatiessaan Nikulta yhä enemmän ja enemmän työtä. Sillä jos Nikolai rakasti häntä niin, niinkuin hän uskoi, niin suuri oli se suru, joka oli Nikua kohtaava. Mutta kun kerran Niku on ollut mies minut ottamaan, niin kai on mies jättämäänkin, ajattelee hän ja sydän tahtoo itkeä, mutta hän pakottaa silmänsä kyynelettömiksi. Olenko minä hullu? kysyy hän itseltään viedessään kirjeen postiin ja toteaa tylysti: En, vaan minuun on mennyt pahahenki, perkele. Itse hän ei kuitenkaan niin ollut tahtonut. Hän oli tahtonut olla rehellinen ja hän oli tahtonut olla kokonainen, mutta hänen oli
  • 35. pidettävä kunniassa neljäs käsky eikä hän saanut ehdoin tahdoin saattaa äitiään hautaan. Ja hän vartoo. Antaa nyt tulla. * * * * * Illat ovat pitkät ja ilmat käyvät yhä kylmemmiksi. Helmi istuu kamarissaan ja tulet uunissa ja lampussa palavat kauan. Eikö nyt jo ala olla maatamenon aika, lähimain. Mutta portaissa kuuluu askelia, askelmat narisevat. Olisiko joku tytöistä tai isä? Vaan mitäpä he täältä hakisivat. Nyt koputetaan ovelle. Kukahan! Hän on ihmeellisesti vieraantunut entisistä tovereistaankin. "Sisään!" Ja sitten: "Sinäkö siinä taas. Aina sinä osaat valita sellaiset merkilliset vierailu-ajat." Valo huikaisee Suontaan Heikin silmiä. "Anna anteeksi", pyytää hän, "en voinut olla enää tulematta." "Olet sinäkin. Mutta istu nyt kiireimmäksi aikaa. Mitähän ihmiset oikein ajattelevat, kun tällaisella ajalla tulit?" "Ei minua kukaan nähnyt. Olen jalkaisin liikkeellä ja kun näin valon kamaristasi ja vierasporstuan oven auki puikahdin sisälle kenenkään huomaamatta."
  • 36. "Se on sisälle, mutta entä ulos." Nuori mies painaa katseensa alas. Helmin mielikuva hänestä ei ole ollut erehdyttävä. Siinä on suoruutta, rehellisyyttä ja omalaatuisensa komeuttakin. Mutta… Helmi karkoittaa ajatuksen luotaan ja puree huultansa. Nyt Suontaan Heikki kohottaa katseensa ja katselee häntä rukoilevasti. "Ja senkö asian takia sinä tulit?" kysyy Helmi hymyillen. "Niin." "Mutta etkö sinä, poika parka, käsitä, että maineeni kärsii tällaisesta. Ensin kolkuttelet aittani takana, niin että koko maailma saa sen tietää ja sitten hiiviskelet kamariini. Ei reilu kosiomies sillä tavalla kulje." "Vaan enhän voi oriilla reippaasti ajella pihaan saamaan rukkasiakaan. Pitäähän minun toki saada edes aavistus siitä, mitä minulla on odotettavissa." Helmi hymyilee ensi kerran pitkästä aikaa ja hänen hampaansa välkähtelevät lampunvalossa. "Ahaa, sinä tarkoitat, että meidän sitä ennen täytyisi, niinkuin sanotaan, pitää seuraa." "Ei", sanoo poika ujosti, "tahdoin vain saada selon siitä, huolitko minusta." "Vai niin. Mutta tässä on kysymys muustakin asiasta: rakastatko minua."
  • 37. "Olen sen jo kerran sinulle sanonut." "Tahdon todellakin muistella, että kuiskuttelit minulle jotakin sentapaista oven takaa." Suontaan Heikki hengitti kiivaasti, hänen poskensa saivat hehkua ja hänen silmänsä leimusivat. "Älä tee pilkkaa, Helmi", huohotti hän, "sen takia, että olen ujo ja saamaton. Sillä minä en ole tällaisissa asioissa ennen kulkenut, minulla ei ole tottumusta. Kuule Helmi, minä en ole sen laadun miehiä, että voisin lakkaamatta, vuosikausia, juosta jälessäsi ja mahdollisissa ja mahdottomissa tilaisuuksissa kuiskata: Helmi, Helmi, minä rakastan sinua. Mutta sen tahdon sanoa sinulle, että siitä asti, kuin ylimalkaan olen tiennyt, mitä rakkaus on, on se kohdistunut sinuun, sen sanon vieläkin eikä se muuksi muutu, vaikka elävä saatana olisi." Helmi nousi seisomaan. Hän oli käynyt kasvoiltaan aivan valkeaksi. "Muistatko sinä, mitä sanoit?" kysyi hän nopeasti. "Muistan." "Sinä sanoit: vaikka elävä saatana olisi." "Minä sanon sen vaikka vieläkin." "Mutta et kai sinä tahdo, että piru on siunaamassa meidän avioliittoamme!" Nyt Suontaan Heikkikin kavahti seisomaan ja tarttui Helmiä käteen.
  • 38. "Helmi", sanoi hän hengittäen raskaasti, "sanoitko sinä: avioliittomme? Tuletko sinä? Rakastatko sinä — edes vähän?" Saaren Helmi on jo rauhoittunut. Hän ei tunne mitään, hänen hermonsa ovat kuin puuta, mutta hänen aivonsa ovat toiminnassa ja hän harkitsee, harkitsee. "Poika rukka", kuiskaa hän laskien kätensä hänen päälaelleen, "enhän minä tiedä ja kuinka minä voisinkaan näin äkikseltään mitään tietää, mutta minä tahdon koettaa…" Se onkin Suontaan Heikille kylliksi. Hän sulkee Helmin syliinsä, suutelee hänen huuliaan, silmiään, kaulaansa. Ja Helmi sallii sen tapahtua. Se ei ollenkaan häiritse hänen rauhaansa. Hän pysyy vain syrjästäkatsojana ja tekee havainnoita asioista, jotka — kuuluvat asiaan. Ei ikimaailmassa hän olisi uskonut, että Heikki Heikinpoika Suontaa voisi olla noin kiihkeä ja intohimoinen. "Sinä et tule katumaan, Helmi", kuiskaa poika, "minä teen sinut onnelliseksi, vaikka mikä olisi…" "Vaikkako mikä olisi!" keskeyttää Helmi tyynesti ja soinnuttomasti. "Vaikka mikä olisi ja teen vaikka väkisin." "Kuule, Heikki, minä panen kaikki mieleeni, kaiken, mitä sanot ja ehkä muistutan sinua siitä joskus." "Pane, muistuta. Voi, Helmi, vuosikausia olen tätä ajatellut, vuosikausia olen itsekseni aprikoinut, uskallanko…"
  • 39. Toisen nuorekas, rehellinen into lämmittää Helmiä. Ah, kunpa poika tietäisi, mutta ei, ei saa edes ajatellakaan. Täytyy olla tyyni ja harkitsevainen. Ja aika kuluu Helminkään sitä huomaamatta ja valot Sarvalan kylässä ovat jo aikaa sitten sammuneet. "Kuulehan nyt, poika", sanoo hän äkkiä kylmästi ja hyydyttävästi. "Miten sinä aiot päästä täältä pois?" "Hoh! Minä osaan kyllä mennä hiljaa. Ja sitäpaitsi: minä tulen huomenna hevosella takaisin, — isäsi puheille, alakertaan." Helmi hymähti. "Tarkoitatko, ettei sen poismenon kanssa niin väliä olekaan?" kysyi hän. Poika lensi punaiseksi. "En", vastasi hän. "Mutta vuosia olen sinua ajatellut enkä ole luoksesi pyrkinyt kuin sen yhden ainoan kerran. Ja silloinkin vain puhellakseni." Helmi miettii, yhä vain miettii ja silmissä palaa tuli, joka voisi kammottaa Suontaan Heikkiä, jos hän sen huomaisi. "Ihmiset eivät saa saada tietää, että olet ollut täällä yömyöhällä", puhuu hän viimein matalasti ja ikäänkuin neuvottomana kääntäen katseensa pois. "Alhaalla voivat vielä valvoa äidin kanssa. Parempi, että menet viiden vaiheilla tai hiukan sitä ennen. — Lupaatko maata lattialla rauhallisesti?" "Voi, Helmi, minähän tulen kuitenkin huomenna takaisin. Älä vaadi sellaista, jota en voi luvata tai anna minun mennä."
  • 40. "Sinä et voi mennä sen syyn takia, josta jo kerroin." Suontaan pojan posket hehkuivat ja silmät olivat kuin verhon takana. "Kyllä minä koetan", kuiskasi hän, "mutta anna kun suutelen sinua ensin." "No, suutele, mutta käännä sitten selkäsi, että saan riisuutua." * * * * * Lamppu sammuu, tunnit alkavat kulua. Helmin ajatus valvoo, mutta ruumis ja hermot ovat kuin turruksissa. Ah, ei uskalla ajatellakaan sitä, mitä tahtoisi. Tämä on kauheata. "Helmi", kuuluu kuiskaus lattialta. Mutta Helmi ei vastaa ja aikoja kuluu, jolloin kuuluu vain kahden ihmisen hengitys. "Helmi", kuuluu uudelleen, "nukutko sinä." Saaren Helmi painaa luomensa lujemmin kiinni ja kääntää kylkeään. "Saanko minä tulla luoksesi?" Ei vastausta. Helmistä tuntuu kuin hänen ajatuksensa olisivat matkojen päässä täältä ja vain hänen eloton ruumiinsa makasi sängyssä. Hän tuntee, kuinka kuumat huulet koskettavat hänen kasvojaan, kuinka peitettä nostetaan ja kuinka hänen asentoaan muutetaan eikä hän tee liikettäkään mitään torjuakseen. Sitten hän kuin kaukaa kuulee oman äänensä:
  • 41. "Hyvä Luoja, Heikki, mitä sinä oikein teet?" Mutta minkä pitää tapahtua, se tapahtuu. Vasta sitten hän havahtuu, nousee istumaan ja sytyttää kynttilän. Ja hänen silmänsä ovat uhkaavat ja hänen äänensä värisee kun hän sanoo: "Tiedätkös, mitä teit?" Suontaan Heikki on kalpea ja totinen eikä hän voi muuta kuin sopertaa: "Minähän rakastan sinua ja, niinkuin sinä olet minun, niin olen minä sinun." Vaan Helmi heittäytyy suulleen vuoteelleen ja alkaa itkeä, itkee suonenvedontapaisesti ja taukoamatta niin että hartiat vavahtelevat. Mutta mitä hän itkee, — sen tietää vain hän itse.
  • 42. XV Päivän valjetessa ei Helmi tahdo voida ottaa kuvastinta käteensä. Mutta täytyy, on pakko tehdä se, vaikka käsi enemmän kieltää kuin toinen käskee. Onko se sama Saaren Helmi kuin ennen, joka nyt katselee häntä kiiltävästä pinnasta, vaikeitten kehysten keskeltä. Ensin Helmi peräytyy ja laskee kuvastimen syrjään, mutta ottaa sen heti uudelleen käteensä. Ellei uskalla itseään katsella, niin mitä sitten! Kasvot ovat harmaankalpeat, — entä sitten, ulkonakin on taivas harmaja ja alakuloinen. Silmät ovat ilmeettömät ja niitä ympäröivät siniset renkaat, — niin, takanahan onkin valvottu yö. Huulet ovat ikäänkuin käyneet kovemmiksi ja verettömämmiksi, — sen ne voivat tehdä vähemmästäkin tuskasta ja jännityksestä. Ja pienemmistä ja lyhytaikaisemmistakin mielenliikutuksista saattaa vartalo saada lyhistyneen, kuluneen leiman.
  • 43. Mutta antaa olla. Helmi naurahtaa oneasti ja laskee peilin lopullisesti pois. Näinpähän on tahdottukin. "Hyvin, hyvin kelpaan Suontaahan", ajattelee hän. "Kaikki eivät kelpaisi paremmankaan näköisinä." Kun hän nyt antaa ajatuksensa kääntyä Sarkan Nikolaihin, on tämä niinkuin kaiken ulkopuolella. Niku, mitä hän oikeastaan menettää? Ryhdittömän, huonon ihmisen. Niku kenties suree aikansa, ellei heti ala vihata, mutta tuhannet mahdollisuudet ovat hänellä jälellä. Entä hän itse, Helmi, mitä hän menettää? Uskon ihmisyyteen ja omaan voimaansa. Mutta hänkin voittaa sentään jotakin: saa varman tulevaisuuden ja hyvän maineen. Ja kun aika kuluu niin ehkäpä hän oppii tämän lisäksi älyämään, ettei talontyttö, vaikkapa kaksinkertaisesti langennutkin, sittenkään oikein sovellu sällimiehelle ja että sellaisella useimmiten kaikesta huolimatta on paremmatkin ottajansa. Eikä Saaren Helmi tunne omaa nauruaan, kun hän naurahtaa, ajatellessaan, mitä Suontaan Heikki lopulta on voittanut: huononpuoleisen naisihmisen, joka lisäksi on häntä verisesti pettänyt, mutta lohdutukseksi jonkun verran maata, rahaa ja tavaraa. Eivätkö Suontaat ole sen suunnan väkeä, että osaavat lohduttautua silläkin. Silmänräpäykseksi Helmi jäykistyy ajatellessaan Heikkiä: näinkö hän vastaa toisen vilpittömään rakkauteen. Mutta samassa hän keikahduttaa päätänsä taaksepäin. Niin täytyy ollakin, niin on tahdottu ja kuka menee takaamaan toisen tunteiden aitoutta ja vilpittömyyttä!
  • 44. Nyt hän alkaa olla valmis. Hän huuhtelee kasvonsa huolellisesti kylmällä vedellä, pukeutuu ja menee alas. Vieraseteisessä isä hänet pysähdyttää. "Minusta tuntui kuin joku olisi sieltä tullut aamuvarhaisella", sanoo hän. Helmi punastuu korviaan myöten, mutta voittaa heti itsensä. "Ei se varhaista ollut", vastaa hän tavattoman kovasti ja arkipäiväisesti. "Ihmiset liikkuivat jo tuvassa ja pihallakin." Isä liikahtaa kuin tahtomattaan askeleen tytärtään kohti. Korvapuusti ei tällä hetkellä ole varsin kaukana. "Vai niin", virkahtaa hän sitten jääden odottamaan. "Suontaan Heikki se oli. Tuli nousun aikana ja äsken lähti." "Vai niin", tulee taas, mutta puhujan kasvoista ei huomaa, että uutinen häntä ilahduttaisi. "Kävi kysymässä, että saako hän tulla isänsä kanssa päivällä." "Vai niin." "Ja minä vastasin, että kun asiat niin päin näyttävät olevan, niin eihän siinä muu auta." Helmi aikoo mennä sisälle, mutta isän katse pidättää häntä. Helmi säpsähtää sitä katsetta, siinä on melkein kammoa. "Ihmiseksi sinä synnyit", sanoo Saaren Juhani viimein, "ja ihmiseksi sinua on koetettu kasvattaa, mutta nyt en tiedä, vaikka
  • 46. XVI Suontaan vanha isäntä on saita ja laiha ja saituuttaan kai hän onkin laiha. Hänen silmänsä ovat pienet ja tihruiset ja hänen äänensä kuin kitisevän saranan. Housujenkin takamustat hänellä aina riippuvat velttoina ja puku hänellä useimmiten on alapuolella keskinkertaista olevaa laatua, mutta silti hän tietää arvonsa ja tahtoo, että muutkin sen tietävät. Mutta kun hän nyt harmajana syystalven päivänä ajelee poikansa kanssa kotiin Saaresta, on hän kuin puulla päähän lyöty eikä hänen ihmettelynsä löydä rajoja. Hän on odottanut pieniä kestejä, hymyileviä naamatauluja ja sen sellaista, mutta näin nyt on käynyt: Saaren Juhani on omissa puuhissaan eikä tule näkyviin ollenkaan ja morsian vastaa juuri ja juuri sen verran, mikä on välttämätöntä. Ainoa, joka näyttää tyytyväiseltä ja onnelliselta, on emäntä, mutta sekin on kai — kuka tietää — koko loppuiäkseen sänkyyn tuomittu. Ei ota Suontaan isäntä tätä käsittääkseen. Hyvä, että tuli vaan asia myönteiseen suuntaan toimitetuksi. "Ei näytty paljon merkitsevän", vikisee hän pojalleen. "Anna, jos olisi pitäjässä parempia ollut, niin ei muuta kuin ajele koreasti vain
  • 47. kotiisi, ajele pois!" Poika ei nähtävästi kuuntele isänsä puhetta, murahtaa vain jotakin epäselvää niinkuin kohteliaisuudesta tai velvollisuudentunnosta. "Minä jo mennessämme ajattelin", jatkaa äijä, "että puhun nyt koko asian valmiiksi loppuun asti…" "No, tulihan se puhutuksi", tokaisee poika väliin. "Tuli niinkuin tuli. Mutta minä ajattelin puhua niin, että sinä olisit päässyt Saareen kotivävyksi. Meillä kun on jo sellainen entuudestaan ja Saarikin alkaa jo tulla vanhaksi ja tarvitsee hyvinkin apulaisen…" Pojan äänessä soi hieno iva, kun hän vastaa: "Vai olitte te ajatellut niin pitkälle." "Niinpä. Mutta menepä siinä juttelemaan, kun Saaren Juhani ei pidä sen vertaa arvossa, että tulisi näkyvillekään." "Ajatteli kai", sanoo poika samaan tapaan kuin äsken, "että kahden kauppa, kolmannen korvapuusti." Suontaan ukko ei pitkään aikaan vastannut mitään. Hänestä oli koko kohtelu Saaressa ollut ällistyttävää, tuskinpa, että juuri ja juuri vastata viitsittiin. Paitsi emäntä tietenkin, mutta sehän olikin aina ollut sellainen pitkälle ajatteleva ihminen. Mietteissään hän sivaltaa hevosta nopeampaan juoksuun rosoisella ja jäätyneellä, lumen hyvin vähän peittämällä tiellä. Mutta isän puheet olivat saaneet pojan ajatukset käyntiin. Ne olivat uinuneet onnessaan viime tunnit, nyt ne heräsivät.
  • 48. "Asia on niin", virkahti hän, "että jokainen nai itselleen. Kun minä menen naimisiin, niin otan vaimon itselleni enkä teille. Onko selvä?" Ukko hellittää ohjaksia ja luo pienillä tihruisilla silmillään häneen kysyvän katseen: Mikä siihen nyt meni? "Jos miniä on teille mieleinen", jatkoi poika, "niin sehän on sitä parempi asia. Mutta ellei sattuisi olemaan, niin sitä ei voitaisi auttaa." "Häh! Mihin sinä oikein tähtäät? Kuka sen on sanonut, ettei Saaren Helmi olisi meille mieleinen." "Siitähän juuri onkin kysymys ja minähän jo sanoin, että sitä parempi. Mutta mitä te siihen sitten sekoitatte kotivävyyttä ja sen sellaista!" "No mutta saa kai sitä katsoa eteenpäin asioita." "Saa kai, mutta minä katson nyt itse omat asiani." "Katsot, mitä katsot", murahti ukko puoleksi itsekseen. "Nulikka olet niin ikäsi kuin järkesikin puolesta." Poika kuuli kaiken, muttei ollut kuulevinaan, jatkoi vain kuin muina miehinä: "Ellemme me Helmin kanssa mahdu Suontaahan, niin en minä rupea liioin tunkeilemaan Saareen. Ettäs sen jo valmiiksi tiedätte! Ellei kaksi tervettä, rakastavaista ihmistä, jotka osaavat tehdä työtä, elä missä maailman kolkassa tahansa, niin sepä sitten on ihme." Tämä on Suontaan vanhalle, kitsaalle äijälle aivan uutta oppia eikä hän voi käsittää, mistä hänen poikansa on saanut sellaista päähänsä.
  • 49. Varmuuden vuoksi hän ohimennen kysäisee: "Sinä meinaat, että olisit ottanut Helmin, vaikka se olisi ollut tyhjä kuin… kuin ravistunut saavi?" "Niin." 95 Silloin vanha, laiha Suontaa tulee siihen johtopäätökseen, että tämä nyt sitten on sitä rakkautta. Ja hyvä on, että se osui Saaren Helmiin. Miettiväinen hän on, kun hän kääntää hevosen taloon vievälle tielle.
  • 50. XVII Ei näy arkinen viihtyisyys menestyvän Saaren talossa. Ennen siellä aherrettiin ahkerasti aamusta iltaan ja illan tullen jokainen meni tyytyväisenä levolle. Päivä toisensa jälkeen kului tasaisena ja rauhallisena. Mutta entä nyt! Tytär on miehelle menemässä, ainoa tytär kaiken lisäksi, tuleva vävy on niitä mieluisimpia ja talossa pitäisi siis olla iloa ja touhua. Vaan sen sijaan on talon elämä kuin pysähtynyt ja asukkaista tuntuu ikäänkuin he vartioisivat toinen toistansa. Hiiviskellään, supatellaan, katsellaan toisiaan syrjäsilmällä ja ollaan kuin odotettaisiin jotakin ikävää. Isäntä on aivan kuin hänellä ei olisi asian kanssa mitään tekemistä. "Suontaan isäntä kävi täällä kosimassa Helmiä pojalleen", kertoo emäntä ja hänen kuluneet, jännittyneet kasvonsa loistavat ensi kerran pitkästä aikaa. "Vai niin. Mitäs Helmi?" "Lupasi", vastaa emäntä äänen kuvastaessa riemua.
  • 51. "Vai niin." Siihen se jäi ja isäntä menee askareilleen, niinkuin sen kummempaa ei olisi tapahtunut. Eikä ole muuttunut Helmikään. Pitäisi olla iloinen ja onnellinen ja on päinvastoin kuin mieleen olisi tullut suru. Ei hänellä ole aiemminkaan ollut väelle erikoisempia sanottavia, nyt pitäisi olla joku virkistävä sana silloin tällöin, mutta puhelahja näkyy tyyten loppuneen. Mitä kihlautumista se sellainen on. Muutamana päivänä sanoo Suontaan Heikki hänelle ujoisesti ja tapaillen: "Isä on sellainen vanhanaikainen mies. Se oli ajatellut, että minä tulisin tänne niinkuin kotivävyksi, isällesi avuksi." "Se on käsitettävää", vastasi Helmi hyvin arkisesti. "Teillähän on siellä jo vävy entuudestaan ja tytär omasta takaa. Sinä, isäsi poikana, tietenkin lupasit yrittää." "Vastasin, että ellemme, sinä ja minä, meille mahdu, niin en tungettele minnekään. Sanoin, että se nyt on kumma, ellei kaksi tervettä ihmistä, jotka osaavat tehdä työtä, tule toimeen missä maailman kolkassa tahansa." Helmi kalpenee eikä voi vastata mitään. Mutta Suontaan Heikki ei ole mitään huomannut, vaan jatkaa: "Se on sellainen, se isä. Mutta siihen se sitten jäi. Huomautin hänelle kerta kaikkiaan, että vaikkei sinulla olisi kotia eikä ryysyjäkään ylläsi, niin… Mutta mikä sinun on?"
  • 52. Saaren Helmi ei ollut voinut kuunnella enempää, vaan oli kätkenyt päänsä käsiinsä ja purskahtanut itkuun. Kuitenkin hän pian tointui. "Ei se mitään ollut", vastasi hän. "Minusta vain tuntui niin oudolta, että minua noin rakastat." Ja hetken kuluttua hän lisää: "Mene jo taas, Heikki. Olen todellakin hiukan huonovointinen." Siltä hän kylläkin näyttää. Sillä heti Suonpään Heikin mentyä vetää hän sormestaan kihlasormuksensa ja asettaa sen pöydälle, riisuutuu ja menee vuoteeseensa. Mutta kauan aikaa lampun sammuttua kuuluu vuoteesta nyyhkytys ja nyyhkytysten väliltä valitus ja voivotus. Sellaisia päiviä vietetään nykyisin Hirvikylän Saaressa. Elämä on lamassa ja surkastumaan päin, vain emäntä on, kuin rupeaisi hän vähitellen toipumaan. Tosin se on hetkellistä, puuskittaista ja itsensä kostavaa. Mutta joskus hän omin avuin ja suurella vaivalla nousee vuoteestaankin ja ilmestyy yhtäkkiä tupaan väen keskelle. Ja kun väki häntä silmät pyöreinä ja voimatta sanoa sanaakaan katselee, sanoo hän äänellä, josta ei tiedä, onko siinä katkeruutta vaiko leikillisyyden tapaista: "Mitä siinä töllistelette? Kuolleistako luulitte minun nousseen?" Välkkyvät, pistävät silmät katselevat vaanien joka soppea, sanat ovat hiljaisemmat kuin ennen, mutta yhtä tiukat ja täsmälliset. Pian hän kuitenkin on pakoitettu huohottaen menemään omaan huoneeseensa.
  • 53. Vaan eräänä iltapäivänä käskee hän emäntäpiian mennä hakemaan taloon neulojan, Söterin Maijan ja hänelle jonkun avuksi. Alusta viikon jo saisivat tulla. Humahdus käy läpi talon. Näin siis Saaressa alettiin valmistella häitä.
  • 54. XVIII "Kun et sinä koskaan käy talossa", sanoo Heikin sisko kerran ollessaan Saaressa Helmin luona vieraisilla. "Lienetkö koskaan käynyt meillä." "Olen toki, vaikka taitaa siitä olla aikoja." "Kävisit nyt. Eikö se kuulu vähän niinkuin asiaankin." Helmi hymähtää ja punastuu lievästi ja toinen käsittää sen väärin. "Ei oikein tahdo olla aikaa", vastaa Helmi viivytellen, ja Heikin sisar nyökäyttää ymmärtävästi. "Arvaa sen", nauraa hän. Tosiasiassa Helmillä tällä kertaa ei ole mitään niin runsaasti kuin aikaa. Hän ei kajoa mihinkään eikä tee mitään. Hänelle neulotaan, hänestä otetaan mittoja, hänen ympärillään hyöritään ja hän antaa sen tapahtua. Hän on antanut asian saada alkunsa ja nyt se menee kuin itsestään hänen tarvitsematta nostaa sormeaankaan sen auttamiseksi.
  • 55. Mutta joskus hän pysähtyy ajattelemaan ja silloin häntä alkaa kauhistuttaa. Ulkoa, ikkunaruutujen takaa, katselee häntä musta ja tähdetön yö ja yön keskeltä kuin kavalat, irvistelevät kasvot. Mitä se on? Henki salpautuu kurkkuun ja hän tahtoisi kirkaista, juosta alas ja kertoa kaikki, mutta joku voima pidättää häntä. Sen sijaan hän tarttuu kynään ja alkaa kirjoittaa. Siihen tulee verta ja tuskanhuutoa joka riville, muttei sitä, mitä pitäisi. "Ole kärsivällinen kanssani, rakas Niku. Ehkä kaikki muuttuu piankin." Edellisen hän uskoo, jälkimmäistä hän toivoo, muttei usko. Askel on otettu ja se on peruuttamaton. "Älä vastaa", lopettaa hän kirjeensä. "Se vain pahentaisi asemaani." Kuinka syvälle hän oli vaipuva ja millainen oli loppuratkaisu oleva. Vai tuliko koko hänen loppuelämänsä olemaan jatkuvaa rangaistusta. Helmi ei uskalla sitä ajatellakaan, hän karkoittaa kaikki tarpeettomat ajatukset luotaan. Mistä hän saa siihen voiman? Kun hän öisin miettii asiaa, tulee hän siihen johtopäätökseen, että piru itse on häntä auttamassa. Nytkin hänellä on kirje Nikolaille pöytäliinan alla. Pieni kohottaminen vain ja asia olisi selvä. "Käy nyt katsomassa", nauraa Suontaan Heikin sisar, "että tiedät, minkälaiseen paikkaan joudut." "Jos haluaisit niinkuin peräytyä", jatkaa hän sitten.
  • 56. Helmi kohottaa katseensa ja näyttää siltä kuin hän ei käsittäisi, mistä on kysymys. "Heikkihän voi tulla tänne", sanoo hän. "Suontaassa kai on isäntiä jo kaksittainkin." Tulevan kälyn silmät välähtävät tyytyväisyydestä. "Arveletko, että niin olisi parempi?" kysyy hän. "Niin, en minä tiedä. Vaan ei kai teillä kolmea isäntää tarvita — eikä emäntää myöskään." Tämän sai Suontaan Heikin sisar ottaa aivan miltä kannalta itse tahtoi. Helmiä tuskastutti jo pelkkä ajatuskin, että hänen täytyisi käydä Suontaassa. Vaikka hän oli mennyt näin pitkälle, niin niin pitkälle hän ei kuitenkaan menisi: Suontaan seinätkin saastuisivat, jos hän astuisi niiden sisäpuolelle. Mutta Heikin sisar on onnellinen. Hän nousee ja tekee lähtöä. Parempaa vaimoa ei hänen veljensä voisi saada, ei missään tapauksessa. Eikä hän voi olla sanomatta sitä Helmillekin. Ja Helmin tekisi mieli taas itkeä tai — kirota. Mutta hän ei tee kumpaakaan. Hänen olentonsa vain kuin jäykistyy ja käy elottomaksi. Hän aikoo sanoa: "älä ennen aikaa kehu", muttei saa sanotuksi sitäkään. Sulhasen sisar katsoo häneen ihmetellen. "Älä nyt suotta sen asian kanssa itseäsi vaivaa", kehoittaa hän. "Miehelään sinä joka tapauksessa ennen pitkää olisit joutunut."
  • 57. Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! ebookfinal.com