I-1



Index
A                                                  beginning Service Broker conversations, 9-26
                                                   bigint data type, 2-3
accessing data. See data retrieval
ACID mnemonic, 1-5                                 BINARY BASE64 option (FOR XML), 3-4
ACTIVATION option (CREATE QUEUE), 9-20             binary data types, 2-4
AFTER triggers, 5-28                               binding relational columns and variables, 3-36
aggregates, managed, 8-22                          bit data type, 2-4
alias data types, 2-6 to 2-7                       blocking and locking. See locking
   managed, 8-22                                   B-trees, 4-4
alignment, index, 4-19
ALLOW_PAGE_LOCKS option, 4-12                      C
ALLOW_ROW_LOCKS option, 4-12                       CALLER option (EXECUTE AS clause), 7-38
ALTER DATABASE statement                           calling parameterized stored procedures, 7-12
   enabling recursive triggers, 5-39               CASCADE option, FOREIGN KEY constraint, 5-19
   filegroup management, 1-17                      cascading referential integrity, 5-19
ALTER FUNCTION statement, 7-20                     catalog views, 1-11, 6-16
ALTER INDEX statement                                 obtaining index information, 4-24
   REINDEX clause, 4-36                            CATCH block. See TRY...CATCH blocks
   REORGANIZE clause, 4-36                         certificates as authenticators, 7-41
ALTER PARTITION FUNCTION statement, 2-25, 2-26        Service Broker, 9-12
ALTER PROCEDURE statement, 7-8                     char data type, 2-4
ALTER TABLE statement, 2-15                        CHECK constraints, 5-7, 5-13
   CONSTRAINT clause, 5-8, 5-10                       disabling, 5-21
   constraint modification, 5-8                    classes, 8-18
   NOCHECK option, 5-22                               mapping to, 8-22
   REFERENCE clause, 5-19                          CLR (Common Language Runtime), 8-2 to 8-8
   SWITCH clause, 2-25                             clustered indexes, 4-4 to 4-5
ALTER VIEW statement, 6-13                            partitioned, 4-19 to 4-20
   WITH ENCRYPTION option, 6-18                       tables without (heaps), 4-6
ALTER XML SCHEMA COLLECTION statement, 5-48        collations, column, 2-14
altering. See modifying (altering)                 collections, XML schemas, 5-47
anonymous dialog security (Service Broker), 9-13   columns
ANSI_ database options, 1-9                           collations (sort orders), 2-14
ANSI synonyms for data types, 2-3                     defined as xml, 3-31, 3-40
APPLY operator, 3-40                                  indexes with multiple, 4-15 to 4-16
approximate numeric data types, 2-3, 2-4              integrity of, 5-3, 5-4
AS SNAPSHOT OF clause (CREATE DATABASE), 1-29         names for, 2-14
assemblies, 8-9 to 8-14, 8-18                         relational, binding, 3-36
   importing, 8-11 to 8-12                            special types of, 2-15
   permissions, 8-12 to 8-14                          with unique values. See UNIQUE constraints
asymmetric keys as authenticators, 7-41               in universal tables, 3-9 to 3-10
atomicity of transactions, 1-5                     Common Language Runtime (CLR), 8-2 to 8-8
AUTHENTICATE permission, 7-40, 9-13                composite indexes, 4-15 to 4-16
AUTHENTICATE SERVER permission, 7-40               computed columns, 2-15
AUTHORIZATION clause                                  creating indexes on, 4-17
   CREATE CONTRACT statement, 9-17                 configuring databases, 1-7
   CREATE MESSAGE TYPE statement, 9-15             consistency of transactions, 1-5
   CREATE SERVICE statement, 9-21                  CONSTRAINT clause (CREATE/ALTER TABLE), 5-8, 5-10
AUTO_ database options, 1-7                        constraints for data integrity, 5-5 to 5-22
AUTO mode (FOR XML), 3-4, 3-7 to 3-8                  considerations for, 5-21
   nested XML, 3-13                                   triggers vs., 5-28
automatic options for databases, 1-7               CONTENT keyword (typed XML), 5-50
automatic recovery of transactions, 1-6, 1-8       context of execution, 7-36 to 7-41
availability options for databases, 1-8            context of impersonation, 7-40 to 7-41
                                                   contracts (Service Broker), 9-5, 9-17 to 9-18
B                                                  controlling execution context, 7-36 to 7-41
                                                   conversation groups (Service Broker), 9-8
backups
  partitioned tables and, 2-19                     conversations, Service Broker
  of snapshots (disallowed), 1-29                     architecture for, 9-7 to 9-9
  of transactions, 1-5                                beginning, 9-26
BEGIN DIALOG statement, 9-26                          ending, 9-31
  RELATED_CONVERSATION parameter, 9-31                process of, 9-10
                                                   copies of databases (snapshots), 1-28 to 1-30
I-2       coverage

coverage, 4-9                                  database performance. See performance
CREATE ASSEMBLY statement, 8-11                databases
  WITH PERMISSION_SET clause, 8-13               creating, 1-2 to 1-12
CREATE CONTRACT statement, 9-17                     example of, 1-4
CREATE DATABASE statement                           options for, configuring, 1-7
  AS SNAPSHOT OF clause, 1-29                    file location considerations, 1-4
  multiple filegroups, creating, 1-16               database snapshots, 1-29
CREATE ENDPOINT statement, 9-13                     partitioned tables, 2-18 to 2-26
CREATE FUNCTION statement, 7-20, 7-22, 7-24         transaction log file, 1-6
  mapping to methods, 8-20                       integrity of. See data integrity
CREATE INDEX statement, 4-11                     managed objects, 8-6, 8-17 to 8-23
CREATE MESSAGE TYPE statement, 9-15, 9-17           aggregates, 8-22
CREATE PARTITION FUNCTION statement, 2-21           mapping to managed code, 8-18
CREATE PARTITION SCHEME statement, 2-22             stored procedures, triggers, and functions, 8-20
CREATE PROCEDURE statement, 7-5, 7-11            masking data with views, 6-7
  EXECUTE AS clause, 7-38 to 7-41                obtaining information on, 1-10 to 1-12
  mapping to methods, 8-20                       planning, 1-4
  OUTPUT keyword, 7-13                           snapshots of, 1-28 to 1-30
CREATE QUEUE statement, 9-19                   date and time data types, 2-3
CREATE SCHEMA statement, 1-24                  datetime data type, 2-3
CREATE SERVICE statement, 9-21                 DB_ID function, 1-12
CREATE TABLE statement                         DB_NAME function, 1-12
  CONSTRAINT clause, 5-10                      dbo schema, 1-24
  constraint creation, 5-8                     deadlock, partitioned tables and, 2-20
  REFERENCE clause, 5-19                       decimal data type, 2-3, 2-4
CREATE TRIGGER statement, 5-28                 DEFAULT constraints, 5-7
  mapping to methods, 8-20                     DEFAULT option (CREATE MESSAGE TYPE), 9-18
CREATE VIEW statement, 6-9                     default parameters for stored procedures, 7-12
  WITH ENCRYPTION option, 6-18                 default schemas, 1-25
CREATE XML SCHEMA COLLECTION statement, 5-47   defaults for data integrity, 5-4
CURSOR_ database options, 1-8                  defragmenting indexes, 4-35
cursor options for databases, 1-8              delete statement (XQuery), 3-38
                                               DELETE statements
D                                                responding to with triggers, 5-32. See also triggers
data file groups. See filegroups                 restrictions on, 5-20
data integrity, 5-1 to 5-5                     deleting. See removing
  constraints, 5-5 to 5-22                     dependencies, view, 6-17
  enforcing, options for, 5-4                  detecting index fragmentation, 4-33
  triggers. See triggers                       dialog conversations (Service Broker), 9-8
  validating typed XML, 5-49                     handle variables, 9-26
  XML schemas, 5-5, 5-44 to 5-50               dialog security (Service Broker), 9-13
data modification, 1-30                        direct recursion, 5-39
  restrictions on, 5-11                        disabling constraints, 5-21
  triggers. See triggers                       disabling nested triggers, 5-38
  XML data, 3-37 to 3-38                       distributed partitioned views, 6-26
data portion of table rows, 2-11               DML triggers, 5-5, 5-26 to 5-40
data retrieval, 1-30                             AFTER triggers, 5-28
  FOR XML clause, 3-2 to 3-15                    constraints vs., 5-28
     AUTO mode, 3-4, 3-7 to 3-8, 3-13            DELETE triggers, 5-32
     EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15       INSERT triggers, 5-30
     nested XML, 3-13 to 3-15                    INSTEAD OF triggers, 5-28, 5-35
     PATH mode, 3-4, 3-11 to 3-12                managed, 8-20
     RAW mode, 3-4 to 3-6                        nested, 5-37
  how SQL Server accesses data, 4-3              recursive, 5-39
  querying XML data, 3-35 to 3-36                UPDATE triggers, 5-33
data storage                                   DOCUMENT keyword (typed XML), 5-50
  controlling with multiple filegroups, 1-18   domain integrity, 5-3
  partitioned tables and, 2-19                   enforcing, 5-4
  potential growth of, 1-4                     DROP ASSEMBLY statement, 8-11
data types                                     DROP FUNCTION statement, 7-20
  alias types, 2-6 to 2-7                      DROP PROCEDURE statement, 7-9
  maintaining data integrity with, 5-4         DROP TABLE statement, 2-15
  system-supplied, 2-3 to 2-5                  DROP TYPE statement, 2-7
data views. See views                          DROP VIEW statement, 6-13
Database Engine Tuning Advisor, 4-29 to 4-32   DROP XML SCHEMA COLLECTION statement, 5-48
isolation of transactions   I-3

dropping (removing)                                    free space in indexes, 4-21 to 4-22
  assemblies, 8-11                                     full dialog security (Service Broker), 9-13
  dropping views, 6-14                                 functions, 7-18 to 7-25
  functions, 7-20                                         managed, 8-20
  stored procedures, 7-8                                  for obtaining metadata, 1-12
  tables, 2-15                                            types of, 7-19
  XML data, 3-38
  XML schema collections, 5-48                         G
durability of transactions, 1-5                        global identifiers, 2-4
                                                       GO command, 7-6
E                                                      growth of physical data storage, 1-4
editing. See modifying (altering)
ELEMENTS option (FOR XML), 3-4, 3-6, 3-8, 3-13         H
EMERGENCY database option, 1-8                         handle variables for dialogs, 9-26
encrypting Service Broker dialogs, 9-27                handling errors, 7-28 to 7-33
encrypting views, 6-18                                 header, table rows, 2-11
END CONVERSATION statement, 9-31                       heaps, 4-6
ending Service Broker conversations, 9-31
enforcing data integrity, 5-4
entity integrity, 5-3
                                                       I
                                                       identity columns, 2-15
  enforcing, 5-4                                       IGNORE_DUP_KEY clause (CREATE INDEX), 4-13
error handing, 7-28 to 7-33                            image data type, 2-4, 2-5, 2-12
Evaluate mode (Database Engine Tuning Advisor), 4-30
                                                       impersonation context, 7-40 to 7-41
exact numeric data types, 2-3, 2-4
                                                       implicit transactions, 1-5
EXECUTE AS clause                                      importing assemblies, 8-11 to 8-12
  CREATE PROCEDURE/FUNCTION statements, 7-38 to 7-41   included columns in indexes, 4-16
  CREATE QUEUE statement, 9-20                         index keys, 4-20
execution context, 7-36 to 7-41                        indexed views, 6-5, 6-24
exist method (XQuery), 3-35 to 3-36, 3-39              indexes, 4-1 to 4-9
EXPLICIT mode (FOR XML), 3-4, 3-9 to 3-10                alignment of, 4-19
  nested XML, 3-15                                       creating, 4-10 to 4-22
explicit vs. implicit transactions, 1-5                     on computed columns, 4-17
external fragmentation of indexes, 4-33                     incorporating free space, 4-21 to 4-22
EXTERNAL NAME clause, 8-20, 8-22                         obtaining information about, 4-23 to 4-25
EXTERNAL_ACCESS option (assembly trust level), 8-13
                                                         optimizing, 4-28 to 4-36
                                                         partitioned, 2-19, 4-19 to 4-20
F                                                        types of
failed transactions, rolling back, 7-31                     clustered indexes, 4-4 to 4-5
federated servers, partitioning and, 6-27                   composite indexes, 4-15 to 4-16
file location considerations, 1-4                           heaps, 4-6
   database snapshots, 1-29                                 nonclustered indexes, 4-8 to 4-9, 4-16
   partitioned tables, 2-18 to 2-26                         unique indexes, 4-13
   transaction log file, 1-6                             XML indexes, 4-39 to 4-43
file storage. See data storage                         indirect recursion, 5-39
FILEGROUP_ID function, 1-12                            information about databases, obtaining, 1-10 to 1-12
FILEGROUP_NAME function, 1-12                          initiating Service Broker conversations, 9-26
filegroups, 1-15 to 1-19                               inline table-valued functions, 7-19, 7-22
   mapping partitioned tables to, 2-22                 in-memory node trees, 3-21
   when to create, 1-18                                input parameters for stored procedures, 7-11 to 7-12
FILE_ID function, 1-12                                 insert statement (XQuery), 3-37
FILE_NAME function, 1-12                               INSERT statements
FILLFACTOR option, 4-21                                  responding to with triggers, 5-30. See also triggers
fixed-length data types, 2-5, 2-11                       restricting data values for. See CHECK constraints
float data type, 2-3, 2-5                              INSTEAD OF triggers, 5-28, 5-35
FLOWR statements, 3-34                                 int data type, 2-3
for statement (XQuery), 3-34                           integer data types, 2-3
FOR XML clause, 3-2 to 3-15                            integrity of data, 5-1 to 5-5
   AUTO mode, 3-4, 3-7 to 3-8, 3-13                      constraints, 5-5 to 5-22
   EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15                 enforcing, options for, 5-4
   nested XML, 3-13 to 3-15                              triggers. See triggers
   PATH mode, 3-4, 3-11 to 3-12                          validating typed XML, 5-49
   RAW mode, 3-4 to 3-6                                  XML schemas, 5-5, 5-44 to 5-50
FOREIGN KEY constraints, 5-7, 5-17                     intermediate notes (indexes), 4-4. See also indexes
   cascading referential integrity, 5-19               internal fragmentation of indexes, 4-33
   disabling, 5-21                                     interoperability of managed code, 8-5
   triggers vs., 5-28                                  invoking functions, 7-21, 7-23, 7-25
fragmentation of indexes, 4-33 to 4-36                 isolation of transactions, 1-5
I-4       JOIN operations, performance with partitioned tables


J-L                                                               views, 6-13, 6-19
                                                                  XML schema collections, 5-48
JOIN operations, performance with partitioned tables, 2-20
key values for clustered indexes, 4-5                            monetary data types, 2-3
large data values                                                money data type, 2-3
   data types for, 2-5                                           multi-statement table-valued functions, 7-19, 7-24
   how organized in tables, 2-12 to 2-13                         MULTI_USER database option, 1-8
“large value types out of row” option, 2-13
leaf level (indexes), 4-4. See also indexes                      N
LEFT partition functions, 2-21                                   name resolution, 1-25
let statement (XQuery), 3-34                                     namespaces, 8-18, 8-20
linking objects to managed code, 8-18                              schemas as, 1-23
LOB data types. See large data values                              XML namespaces, 3-26, 3-34
local partitioned views, 6-6, 6-26                               native XML storage and functionality, 3-31 to 3-32
local variables for Service Broker dialogs, 9-29                 nchar data type, 2-4, 2-5
location of database files, 1-4                                  nested triggers, 5-37
   database snapshots, 1-29                                      nested views, 6-23
   partitioned tables, 2-18 to 2-26                              nested XML, retrieving, 3-7, 3-13 to 3-15
   transaction log file, 1-6                                     .NET assemblies. See assemblies
locking                                                          .NET Common Language Runtime, 8-2 to 8-8
   indexes, options for, 4-12                                    NOCHECK option (ALTER TABLE), 5-22
   partitioned tables and, 2-20                                  nodes (indexes), defined, 4-4. See also indexes
logging transactions, 1-5                                        nodes method (XQuery), 3-39 to 3-40
lost transactions, 1-5                                           nonclustered indexes, 4-8 to 4-9, 4-16
                                                                   partitioned, 4-19 to 4-20
M                                                                nonkey columns in indexes, 4-16
                                                                 non-Unicode character data types, 2-4
managed code, 8-1 to 8-24
 importing and configuring assemblies, 8-9 to 8-14               NOT NULL option, 2-7
 mapping database objects to, 8-18                               ntext data type, 2-4, 2-12
 when to use, 8-8                                                null blocks, 2-11
managed objects, 8-6, 8-17 to 8-23                               NULL constraints, 5-7
 aggregates, 8-22                                                nullability
 mapping to managed code, 8-18                                     alias data types, 2-7
 stored procedures, triggers, and functions, 8-20                  table definitions, 2-14
mapping objects to managed code, 8-18                            numeric data type, 2-3, 2-4
masking databases with views, 6-7                                nvarchar data type, 2-4, 2-5, 2-13
master database, snapshots of (disallowed), 1-29
max specifier in data types, 2-5, 2-13                           O
MAX_QUEUE_READER option (CREATE QUEUE), 9-20                     Object Explorer (SQL Server Management Studio), 1-10
media, storage. See data storage                                   obtaining index information, 4-23
merging partitions, 2-25                                         object name resolution, 1-25
messages (Service Broker), 9-7                                   objects, managed, 8-6, 8-17 to 8-23
 queues, 9-6, 9-19 to 9-20                                         aggregates, 8-22
 receiving, 9-29 to 9-31                                           mapping to managed code, 8-18
 sending, 9-26 to 9-28                                             stored procedures, triggers, and functions, 8-20
 types of, 9-5, 9-15 to 9-16, 9-28, 9-31                         OFFLINE database option, 1-8
metadata, obtaining                                              offline index queries, 4-12
 about databases, 1-10 to 1-12                                   OLAP databases, 1-3
 functions for, 1-12                                             OLTP databases, 1-3
 about indexes, 4-23 to 4-25                                     ON option (CREATE QUEUE), 9-20
 about views, 6-16                                               ON DELETE clause, FOREIGN KEY constraint, 5-20
 about XML schema collections, 5-48                              ON UPDATE clause, FOREIGN KEY constraint, 5-19
methods, 8-18                                                    ONLINE database option, 1-8
 mapping to, 8-20                                                ONLINE option, 4-12
model database                                                   OPENXML function, 3-20, 3-23 to 3-25
 options for, 1-7                                                  namespaces with, 3-26
 snapshots of (disallowed), 1-29                                 optimizing indexes, 4-28 to 4-36
modify method (XQuery), 3-37 to 3-38                               Database Engine Tuning Advisor, 4-29 to 4-32
modifying (altering)                                               fragmentation management, 4-33 to 4-36
 data constraints, 5-8                                           optimizing performance. See performance
 data in databases, 1-30                                         ORDER BY clause (ALTER PROCEDURE), 7-8
    restrictions on, 5-11                                        order by statement (XQuery), 3-34
    triggers. See triggers                                       OUTPUT keyword (CREATE PROCEDURE), 7-13
    XML data, 3-37 to 3-38                                       output parameters for stored procedures, 7-13 to 7-14
 functions, 7-20                                                 OWNER (EXECUTE AS clause), 7-38
 stored procedures, 7-8                                          ownership chains (views), 6-15
 tables, 2-15
secondary XML indexes   I-5


P                                                        READ_WRITE database option, 1-8
                                                         real data type, 2-3, 2-5
PAD_INDEX option, 4-22
page splits with indexes, 4-33 to 4-36                   rebuilding indexes, 4-35 to 4-36
page-level locks (indexes), 4-12                         RECEIVE statement, 9-29
PAGE_VERIFY database option, 1-9                         receiving messages (Service Broker), 9-29 to 9-31
parameterized stored procedures, 7-10 to 7-14            recovering transactions, 1-6, 1-8
  input parameters, 7-11 to 7-12                         RECOVERY database option, 1-8
  output parameters and return values, 7-13 to 7-14      recursive triggers, 5-39
Parent column (universal tables), 3-9                    RECURSIVE_TRIGGER database option, 1-9
partition functions, 2-21                                REFERENCE clause (CREATE/ALTER TABLE), 5-19
partition keys, 4-20                                     referencing XML schemas, 5-49
partition schemes, 2-22                                  referential integrity, 5-3
partitioned indexes, 4-19 to 4-20                           cascading, 5-19
partitioned tables, 2-18 to 2-26                            disallowing rollback of changes, 5-28
partitioned views, 6-5, 6-6, 6-26                           enforcing, 5-5
PATH mode (FOR XML), 3-4, 3-11 to 3-12                   REINDEX clause (ALTER INDEX), 4-36
path XML indexes, 4-42                                   RELATED_CONVERSATION parameter (BEGIN DIALOG), 9-31
performance                                              remote service binding, 9-9
  file location considerations, 1-4                      removing
     database snapshots, 1-29                               assemblies, 8-11
     partitioned tables, 2-18 to 2-26                       dropping views, 6-14
     transaction log file, 1-6                              functions, 7-20
  indexes                                                   stored procedures, 7-8
     incorporated free space, 4-21 to 4-22                  tables, 2-15
     nonclustered indexes, 4-9                              XML data, 3-38
     optimizing, 4-28 to 4-36                               XML schema collections, 5-48
  optimizing with views, 6-22 to 6-27                    REORGANIZE clause (ALTER INDEX), 4-36
  partitioned tables, 2-20                               reorganizing indexes, 4-35 to 4-36
  single vs. multiple filegroups, 1-18                   replace statement (XQuery), 3-38
permissions                                              reports (SQL Server Management Studio), 1-10
  assemblies, 8-12 to 8-14                                  obtaining index information, 4-23
  AUTHENTICATE permission, 7-40                          restoring from backups. See backups
  execution context, 7-36 to 7-41                        RESTRICTED_USER database option, 1-8
  views, 6-7, 6-10, 6-15                                 RETENTION option (CREATE QUEUE), 9-20
physical data storage                                    retrieving data from databases, 1-30
  controlling with multiple filegroups, 1-18                FOR XML clause, 3-2 to 3-15
  partitioned tables and, 2-19                                AUTO mode, 3-4, 3-7 to 3-8, 3-13
  potential growth of, 1-4                                    EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15
planning databases, 1-4. See also data integrity              nested XML, 3-13 to 3-15
planning indexes, 4-2 to 4-9                                  PATH mode, 3-4, 3-11 to 3-12
  clustered indexes, 4-4 to 4-5                               RAW mode, 3-4 to 3-6
     partitioned, 4-19 to 4-20                              how SQL Server accesses data, 4-3
     tables without (heaps), 4-6                            querying XML data, 3-35 to 3-36
  heaps, 4-6                                             RETURN statement, 7-14
  nonclustered indexes, 4-8 to 4-9, 4-16                 return statement (XQuery), 3-34
potential growth of physical data storage, 1-4           return values for stored procedures, 7-13 to 7-14
primary filegroups, 1-16                                 RIGHT partition functions, 2-21
PRIMARY KEY constraints, 4-7, 5-7, 5-9                   rolling back failed transactions, 7-31
primary XML indexes, 4-42                                root node (indexes), 4-4. See also indexes
procedures. See functions; stored procedures             ROOT option (FOR XML), 3-4, 3-6, 3-42
processing Service Broker messages, 9-31                 routes, message (Service Broker), 9-8
Properties window (SQL Server Management Studio), 1-10   row organization within tables, 2-11
  obtaining index information, 4-23                      row-level locks (indexes), 4-12
property XML indexes, 4-42, 4-43                         rowsets, processing XML data as. See shredding XML data
purposes of database, 1-4                                rules for data integrity, 5-4
                                                         runtimes, 8-2 to 8-8

Q
quality of data. See data integrity                      S
query method (XQuery), 3-35 to 3-36, 3-39                SAFE option (assembly trust level), 8-13
queues (Service Broker), 9-6, 9-19 to 9-20               scalar functions, 7-19 to 7-21
                                                         schemas, 1-22 to 1-25
                                                           object name resolution, 1-25
R                                                          OPENXML function with, 3-24
RAID, single filegroups vs., 1-18
                                                           XML schemas, 5-5, 5-44 to 5-50
RAW mode (FOR XML), 3-4 to 3-6
                                                         searching databases with partitioned indexes, 2-20
RDBMS component, SQL Server, 1-3
                                                         secondary XML indexes, 4-42
READ_ONLY database option, 1-8
I-6      security

security                                              structured exception handling, 7-29
   assembly permissions, 8-12                         SWITCH clause (ALTER TABLE), 2-25
   encrypting views, 6-18                             switching partitions, 2-25
   execution context, 7-36 to 7-41                    sys catalog views, 1-11, 6-16
   managed code, 8-5                                     obtaining index information, 4-24
   masking databases with views, 6-7                  sys.dm_index_ functions, 4-24, 4-33
   Service Broker, 9-12 to 9-13                       sysindexes system table, 4-21
SELECT statements                                     sysname data type, 2-4
   FOR XML clause, 3-2 to 3-15                        system stored procedures, 7-2 to 7-9
      AUTO mode, 3-4, 3-7 to 3-8, 3-13                   altering and dropping, 7-8
      EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15              creating, 7-5 to 7-8
      nested XML, 3-13 to 3-15                           EXECUTE AS clause, 7-38 to 7-41
      PATH mode, 3-4, 3-11 to 3-12                       managed, 8-20
      RAW mode, 3-4 to 3-6                               obtaining database information, 1-12
   OPENXML function in, 3-20, 3-23 to 3-25               obtaining index information, 4-23
      namespaces with, 3-26                              parameterized, 7-10 to 7-14
   WITH CHECK OPTION clause, 6-19                     system-supplied data types, 2-3 to 2-5
SELF (EXECUTE AS clause), 7-38
SEND statement, 9-28                                  T
sending messages (Service Broker), 9-26 to 9-28       table data type, 2-4
Service Broker, 9-2 to 9-24                           table-level locks (indexes), 4-12
   architecture and functionality                     tables, 2-10 to 2-15
      conversation architecture, 9-7 to 9-9              without clustered indexes (heaps), 4-6
      conversation process, 9-10                         large data values, 2-12 to 2-13
      security, 9-12 to 9-13                             modifying and removing, 2-15
      system architecture, 9-5 to 9-6                    partitioned, 2-18 to 2-26
   creating broker objects, 9-14 to 9-22                 row organization, 2-11
   sending and receiving messages, 9-26 to 9-31          virtual. See views
service objects, 9-6, 9-21                            table-valued functions, 7-19, 7-22 to 7-25
service programs, 9-6                                 Tag column (universal tables), 3-9
shredding XML data, 3-19 to 3-27                      tempdb database, snapshots of (disallowed), 1-29
signing, 7-41                                         text data type, 2-4, 2-5, 2-12
SINGLE_USER database option, 1-8                      “text in row” option, 2-12
smalldatetime data type, 2-3                          time and date data types, 2-3
smallint data type, 2-3                               timestamp columns, 2-15
smallmoney data type, 2-3                             timestamp data type, 2-4
snapshots, database, 1-28 to 1-30                     tinyint data type, 2-3
sort order for column data, 2-14                      TOP parameter, RECEIVE statement, 9-29
sources of database information, 1-10 to 1-12         transactions
sp_ procedures, in general. See stored procedures        defined, 1-5
sp_depends procedure, 7-9                                failed, rolling back, 7-31
special column types, 2-15                               logging, 1-5
special data types, 2-4                                  throughput, 1-4
sp_helpconstraint procedure, 5-21                     Transact-SQL, managed code vs., 8-8
sp_helpindex procedure, 4-23                          transport security (Service Broker), 9-13
splitting partitions, 2-26                            triggers, 5-5, 5-26 to 5-40
sp_tableoption procedure, 2-12, 2-13                     AFTER triggers, 5-28
sp_xml_prepareddocument procedure, 3-20, 3-21, 3-26      constraints vs., 5-28
sp_xml_removeddocument procedure, 3-20, 3-22             DELETE triggers, 5-32
SQL options for databases, 1-9                           INSERT triggers, 5-30
SQL Server, 1-3                                          INSTEAD OF triggers, 5-28, 5-35
   assemblies in, 8-10                                   managed, 8-20
   Common Language Runtime (CLR), 8-2 to 8-8             nested, 5-37
SQL Server Management Studio, 1-10                       recursive, 5-39
sql_variant data type, 2-4                               UPDATE triggers, 5-33
standard views, 6-5                                   trust levels, assemblies, 8-12 to 8-14
starting Service Broker conversations, 9-26           trust relationships, 7-40
STATUS option (CREATE QUEUE), 9-19                    TRY...CATCH blocks, 7-29 to 7-33
storage. See data storage                                XACT_ABORT and XACT_STATE options, 7-32
stored procedures, 7-2 to 7-9                         Tune mode (Database Engine Tuning Advisor), 4-30
   altering and dropping, 7-8                         tuning indexes, 4-28 to 4-36
   creating, 7-5 to 7-8                                  Database Engine Tuning Advisor, 4-29 to 4-32
   EXECUTE AS clause, 7-38 to 7-41                       fragmentation management, 4-33 to 4-36
   managed, 8-20                                      TYPE option (FOR XML), 3-4, 3-14
   obtaining database information, 1-12               type safety, 8-5
   obtaining index information, 4-23                  typed XML, 5-44, 5-49
   parameterized, 7-10 to 7-14                        types. See data types
storing messages. See queues (Service Broker)
XQuery specification   I-7


U                                                        W
UDDTs. See alias data types                              where statement (XQuery), 3-34
Unicode character data types, 2-4                        WITH CHECK OPTION clause, 6-19
UNIQUE constraints, 5-7, 5-15                            WITH CLEANUP clause (END CONVERSATION), 9-31
unique indexes, 4-13                                     WITH ENCRYPTION option
uniqueidentifier data type, 2-4, 2-15                     ALTER PROCEDURE statement, 7-8
universal tables, 3-9 to 3-10                             CREATE/ALTER VIEW statement, 6-18
UNSAFE option (assembly trust level), 8-13               WITH ERROR clause (END CONVERSATION), 9-31
untyped XML, 5-44                                        WITH NOCHECK option (ALTER TABLE), 5-22
UPDATE statements                                        WITH option (CREATE INDEX), 4-11
  responding to with triggers, 5-33. See also triggers   WITH PERMISSION_SET clause (CREATE ASSEMBLY), 8-13
  restricting data values for, 5-11
updating data. See data modification                     X
user-defined data types, 2-6 to 2-7                      XACT_ABORT option (TRY...CATCH), 7-32
  managed, 8-22                                          XACT_STATE option (TRY...CATCH), 7-32
user-defined filegroups, 1-16                            XML
                                                           FOR XML clause, 3-2 to 3-15
V                                                             AUTO mode, 3-4, 3-7 to 3-8, 3-13
validating typed XML, 5-49                                    EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15
VALIDATION clause (CREATE MESSAGE TYPE), 9-15                 nested XML, 3-13 to 3-15
value method (XQuery), 3-35 to 3-36, 3-39                     PATH mode, 3-4, 3-11 to 3-12
value XML indexes, 4-42, 4-43                                 RAW mode, 3-4 to 3-6
varbinary data type, 2-4, 2-5, 2-13                        in-memory node trees, 3-21
varchar data type, 2-4, 2-5, 2-13                          namespaces, working with, 3-26
variable blocks, 2-11                                         declaring in XQuery queries, 3-34
variable-length data types, 2-3, 2-5                       query, value, and exist methods, 3-35 to 3-36
viewing XML schema information, 5-48                       shredding XML data, 3-19 to 3-27
views, 6-1 to 6-7                                          typed, 5-44, 5-49
   altering and dropping, 6-13, 6-19                     xml data type, 2-4, 3-30 to 3-40
   catalog views, 1-11, 6-16                               extracting data from, 3-39 to 3-40
      obtaining index information, 4-24                    indexes of columns with, 4-39 to 4-43
   creating, 6-9 to 6-10                                   native XML storage and functionality, 3-31 to 3-32
   encrypting, 6-18                                      XML indexes, 4-39 to 4-43
   indexed views, 6-5, 6-24                              XML schema collections, 5-47
   multi-statement table-valued functions, 7-19, 7-24    XML schemas, 5-5, 5-44 to 5-50
   obtaining information on, 6-16                        XMLDATA option (FOR XML), 3-4
   optimizing performance with, 6-22 to 6-27             XMLSCHEMA option (FOR XML), 3-4
   ownership chains, 6-15                                XPath syntax, 3-11
   partitioned views, 6-5, 6-6, 6-26                       schema declarations with, 3-24
   types of, 6-5                                           XML namespaces with, 3-26
virtual tables. See views                                XQuery specification, 3-31 to 3-34
9767410 - Index

9767410 - Index

  • 1.
    I-1 Index A beginning Service Broker conversations, 9-26 bigint data type, 2-3 accessing data. See data retrieval ACID mnemonic, 1-5 BINARY BASE64 option (FOR XML), 3-4 ACTIVATION option (CREATE QUEUE), 9-20 binary data types, 2-4 AFTER triggers, 5-28 binding relational columns and variables, 3-36 aggregates, managed, 8-22 bit data type, 2-4 alias data types, 2-6 to 2-7 blocking and locking. See locking managed, 8-22 B-trees, 4-4 alignment, index, 4-19 ALLOW_PAGE_LOCKS option, 4-12 C ALLOW_ROW_LOCKS option, 4-12 CALLER option (EXECUTE AS clause), 7-38 ALTER DATABASE statement calling parameterized stored procedures, 7-12 enabling recursive triggers, 5-39 CASCADE option, FOREIGN KEY constraint, 5-19 filegroup management, 1-17 cascading referential integrity, 5-19 ALTER FUNCTION statement, 7-20 catalog views, 1-11, 6-16 ALTER INDEX statement obtaining index information, 4-24 REINDEX clause, 4-36 CATCH block. See TRY...CATCH blocks REORGANIZE clause, 4-36 certificates as authenticators, 7-41 ALTER PARTITION FUNCTION statement, 2-25, 2-26 Service Broker, 9-12 ALTER PROCEDURE statement, 7-8 char data type, 2-4 ALTER TABLE statement, 2-15 CHECK constraints, 5-7, 5-13 CONSTRAINT clause, 5-8, 5-10 disabling, 5-21 constraint modification, 5-8 classes, 8-18 NOCHECK option, 5-22 mapping to, 8-22 REFERENCE clause, 5-19 CLR (Common Language Runtime), 8-2 to 8-8 SWITCH clause, 2-25 clustered indexes, 4-4 to 4-5 ALTER VIEW statement, 6-13 partitioned, 4-19 to 4-20 WITH ENCRYPTION option, 6-18 tables without (heaps), 4-6 ALTER XML SCHEMA COLLECTION statement, 5-48 collations, column, 2-14 altering. See modifying (altering) collections, XML schemas, 5-47 anonymous dialog security (Service Broker), 9-13 columns ANSI_ database options, 1-9 collations (sort orders), 2-14 ANSI synonyms for data types, 2-3 defined as xml, 3-31, 3-40 APPLY operator, 3-40 indexes with multiple, 4-15 to 4-16 approximate numeric data types, 2-3, 2-4 integrity of, 5-3, 5-4 AS SNAPSHOT OF clause (CREATE DATABASE), 1-29 names for, 2-14 assemblies, 8-9 to 8-14, 8-18 relational, binding, 3-36 importing, 8-11 to 8-12 special types of, 2-15 permissions, 8-12 to 8-14 with unique values. See UNIQUE constraints asymmetric keys as authenticators, 7-41 in universal tables, 3-9 to 3-10 atomicity of transactions, 1-5 Common Language Runtime (CLR), 8-2 to 8-8 AUTHENTICATE permission, 7-40, 9-13 composite indexes, 4-15 to 4-16 AUTHENTICATE SERVER permission, 7-40 computed columns, 2-15 AUTHORIZATION clause creating indexes on, 4-17 CREATE CONTRACT statement, 9-17 configuring databases, 1-7 CREATE MESSAGE TYPE statement, 9-15 consistency of transactions, 1-5 CREATE SERVICE statement, 9-21 CONSTRAINT clause (CREATE/ALTER TABLE), 5-8, 5-10 AUTO_ database options, 1-7 constraints for data integrity, 5-5 to 5-22 AUTO mode (FOR XML), 3-4, 3-7 to 3-8 considerations for, 5-21 nested XML, 3-13 triggers vs., 5-28 automatic options for databases, 1-7 CONTENT keyword (typed XML), 5-50 automatic recovery of transactions, 1-6, 1-8 context of execution, 7-36 to 7-41 availability options for databases, 1-8 context of impersonation, 7-40 to 7-41 contracts (Service Broker), 9-5, 9-17 to 9-18 B controlling execution context, 7-36 to 7-41 conversation groups (Service Broker), 9-8 backups partitioned tables and, 2-19 conversations, Service Broker of snapshots (disallowed), 1-29 architecture for, 9-7 to 9-9 of transactions, 1-5 beginning, 9-26 BEGIN DIALOG statement, 9-26 ending, 9-31 RELATED_CONVERSATION parameter, 9-31 process of, 9-10 copies of databases (snapshots), 1-28 to 1-30
  • 2.
    I-2 coverage coverage, 4-9 database performance. See performance CREATE ASSEMBLY statement, 8-11 databases WITH PERMISSION_SET clause, 8-13 creating, 1-2 to 1-12 CREATE CONTRACT statement, 9-17 example of, 1-4 CREATE DATABASE statement options for, configuring, 1-7 AS SNAPSHOT OF clause, 1-29 file location considerations, 1-4 multiple filegroups, creating, 1-16 database snapshots, 1-29 CREATE ENDPOINT statement, 9-13 partitioned tables, 2-18 to 2-26 CREATE FUNCTION statement, 7-20, 7-22, 7-24 transaction log file, 1-6 mapping to methods, 8-20 integrity of. See data integrity CREATE INDEX statement, 4-11 managed objects, 8-6, 8-17 to 8-23 CREATE MESSAGE TYPE statement, 9-15, 9-17 aggregates, 8-22 CREATE PARTITION FUNCTION statement, 2-21 mapping to managed code, 8-18 CREATE PARTITION SCHEME statement, 2-22 stored procedures, triggers, and functions, 8-20 CREATE PROCEDURE statement, 7-5, 7-11 masking data with views, 6-7 EXECUTE AS clause, 7-38 to 7-41 obtaining information on, 1-10 to 1-12 mapping to methods, 8-20 planning, 1-4 OUTPUT keyword, 7-13 snapshots of, 1-28 to 1-30 CREATE QUEUE statement, 9-19 date and time data types, 2-3 CREATE SCHEMA statement, 1-24 datetime data type, 2-3 CREATE SERVICE statement, 9-21 DB_ID function, 1-12 CREATE TABLE statement DB_NAME function, 1-12 CONSTRAINT clause, 5-10 dbo schema, 1-24 constraint creation, 5-8 deadlock, partitioned tables and, 2-20 REFERENCE clause, 5-19 decimal data type, 2-3, 2-4 CREATE TRIGGER statement, 5-28 DEFAULT constraints, 5-7 mapping to methods, 8-20 DEFAULT option (CREATE MESSAGE TYPE), 9-18 CREATE VIEW statement, 6-9 default parameters for stored procedures, 7-12 WITH ENCRYPTION option, 6-18 default schemas, 1-25 CREATE XML SCHEMA COLLECTION statement, 5-47 defaults for data integrity, 5-4 CURSOR_ database options, 1-8 defragmenting indexes, 4-35 cursor options for databases, 1-8 delete statement (XQuery), 3-38 DELETE statements D responding to with triggers, 5-32. See also triggers data file groups. See filegroups restrictions on, 5-20 data integrity, 5-1 to 5-5 deleting. See removing constraints, 5-5 to 5-22 dependencies, view, 6-17 enforcing, options for, 5-4 detecting index fragmentation, 4-33 triggers. See triggers dialog conversations (Service Broker), 9-8 validating typed XML, 5-49 handle variables, 9-26 XML schemas, 5-5, 5-44 to 5-50 dialog security (Service Broker), 9-13 data modification, 1-30 direct recursion, 5-39 restrictions on, 5-11 disabling constraints, 5-21 triggers. See triggers disabling nested triggers, 5-38 XML data, 3-37 to 3-38 distributed partitioned views, 6-26 data portion of table rows, 2-11 DML triggers, 5-5, 5-26 to 5-40 data retrieval, 1-30 AFTER triggers, 5-28 FOR XML clause, 3-2 to 3-15 constraints vs., 5-28 AUTO mode, 3-4, 3-7 to 3-8, 3-13 DELETE triggers, 5-32 EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15 INSERT triggers, 5-30 nested XML, 3-13 to 3-15 INSTEAD OF triggers, 5-28, 5-35 PATH mode, 3-4, 3-11 to 3-12 managed, 8-20 RAW mode, 3-4 to 3-6 nested, 5-37 how SQL Server accesses data, 4-3 recursive, 5-39 querying XML data, 3-35 to 3-36 UPDATE triggers, 5-33 data storage DOCUMENT keyword (typed XML), 5-50 controlling with multiple filegroups, 1-18 domain integrity, 5-3 partitioned tables and, 2-19 enforcing, 5-4 potential growth of, 1-4 DROP ASSEMBLY statement, 8-11 data types DROP FUNCTION statement, 7-20 alias types, 2-6 to 2-7 DROP PROCEDURE statement, 7-9 maintaining data integrity with, 5-4 DROP TABLE statement, 2-15 system-supplied, 2-3 to 2-5 DROP TYPE statement, 2-7 data views. See views DROP VIEW statement, 6-13 Database Engine Tuning Advisor, 4-29 to 4-32 DROP XML SCHEMA COLLECTION statement, 5-48
  • 3.
    isolation of transactions I-3 dropping (removing) free space in indexes, 4-21 to 4-22 assemblies, 8-11 full dialog security (Service Broker), 9-13 dropping views, 6-14 functions, 7-18 to 7-25 functions, 7-20 managed, 8-20 stored procedures, 7-8 for obtaining metadata, 1-12 tables, 2-15 types of, 7-19 XML data, 3-38 XML schema collections, 5-48 G durability of transactions, 1-5 global identifiers, 2-4 GO command, 7-6 E growth of physical data storage, 1-4 editing. See modifying (altering) ELEMENTS option (FOR XML), 3-4, 3-6, 3-8, 3-13 H EMERGENCY database option, 1-8 handle variables for dialogs, 9-26 encrypting Service Broker dialogs, 9-27 handling errors, 7-28 to 7-33 encrypting views, 6-18 header, table rows, 2-11 END CONVERSATION statement, 9-31 heaps, 4-6 ending Service Broker conversations, 9-31 enforcing data integrity, 5-4 entity integrity, 5-3 I identity columns, 2-15 enforcing, 5-4 IGNORE_DUP_KEY clause (CREATE INDEX), 4-13 error handing, 7-28 to 7-33 image data type, 2-4, 2-5, 2-12 Evaluate mode (Database Engine Tuning Advisor), 4-30 impersonation context, 7-40 to 7-41 exact numeric data types, 2-3, 2-4 implicit transactions, 1-5 EXECUTE AS clause importing assemblies, 8-11 to 8-12 CREATE PROCEDURE/FUNCTION statements, 7-38 to 7-41 included columns in indexes, 4-16 CREATE QUEUE statement, 9-20 index keys, 4-20 execution context, 7-36 to 7-41 indexed views, 6-5, 6-24 exist method (XQuery), 3-35 to 3-36, 3-39 indexes, 4-1 to 4-9 EXPLICIT mode (FOR XML), 3-4, 3-9 to 3-10 alignment of, 4-19 nested XML, 3-15 creating, 4-10 to 4-22 explicit vs. implicit transactions, 1-5 on computed columns, 4-17 external fragmentation of indexes, 4-33 incorporating free space, 4-21 to 4-22 EXTERNAL NAME clause, 8-20, 8-22 obtaining information about, 4-23 to 4-25 EXTERNAL_ACCESS option (assembly trust level), 8-13 optimizing, 4-28 to 4-36 partitioned, 2-19, 4-19 to 4-20 F types of failed transactions, rolling back, 7-31 clustered indexes, 4-4 to 4-5 federated servers, partitioning and, 6-27 composite indexes, 4-15 to 4-16 file location considerations, 1-4 heaps, 4-6 database snapshots, 1-29 nonclustered indexes, 4-8 to 4-9, 4-16 partitioned tables, 2-18 to 2-26 unique indexes, 4-13 transaction log file, 1-6 XML indexes, 4-39 to 4-43 file storage. See data storage indirect recursion, 5-39 FILEGROUP_ID function, 1-12 information about databases, obtaining, 1-10 to 1-12 FILEGROUP_NAME function, 1-12 initiating Service Broker conversations, 9-26 filegroups, 1-15 to 1-19 inline table-valued functions, 7-19, 7-22 mapping partitioned tables to, 2-22 in-memory node trees, 3-21 when to create, 1-18 input parameters for stored procedures, 7-11 to 7-12 FILE_ID function, 1-12 insert statement (XQuery), 3-37 FILE_NAME function, 1-12 INSERT statements FILLFACTOR option, 4-21 responding to with triggers, 5-30. See also triggers fixed-length data types, 2-5, 2-11 restricting data values for. See CHECK constraints float data type, 2-3, 2-5 INSTEAD OF triggers, 5-28, 5-35 FLOWR statements, 3-34 int data type, 2-3 for statement (XQuery), 3-34 integer data types, 2-3 FOR XML clause, 3-2 to 3-15 integrity of data, 5-1 to 5-5 AUTO mode, 3-4, 3-7 to 3-8, 3-13 constraints, 5-5 to 5-22 EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15 enforcing, options for, 5-4 nested XML, 3-13 to 3-15 triggers. See triggers PATH mode, 3-4, 3-11 to 3-12 validating typed XML, 5-49 RAW mode, 3-4 to 3-6 XML schemas, 5-5, 5-44 to 5-50 FOREIGN KEY constraints, 5-7, 5-17 intermediate notes (indexes), 4-4. See also indexes cascading referential integrity, 5-19 internal fragmentation of indexes, 4-33 disabling, 5-21 interoperability of managed code, 8-5 triggers vs., 5-28 invoking functions, 7-21, 7-23, 7-25 fragmentation of indexes, 4-33 to 4-36 isolation of transactions, 1-5
  • 4.
    I-4 JOIN operations, performance with partitioned tables J-L views, 6-13, 6-19 XML schema collections, 5-48 JOIN operations, performance with partitioned tables, 2-20 key values for clustered indexes, 4-5 monetary data types, 2-3 large data values money data type, 2-3 data types for, 2-5 multi-statement table-valued functions, 7-19, 7-24 how organized in tables, 2-12 to 2-13 MULTI_USER database option, 1-8 “large value types out of row” option, 2-13 leaf level (indexes), 4-4. See also indexes N LEFT partition functions, 2-21 name resolution, 1-25 let statement (XQuery), 3-34 namespaces, 8-18, 8-20 linking objects to managed code, 8-18 schemas as, 1-23 LOB data types. See large data values XML namespaces, 3-26, 3-34 local partitioned views, 6-6, 6-26 native XML storage and functionality, 3-31 to 3-32 local variables for Service Broker dialogs, 9-29 nchar data type, 2-4, 2-5 location of database files, 1-4 nested triggers, 5-37 database snapshots, 1-29 nested views, 6-23 partitioned tables, 2-18 to 2-26 nested XML, retrieving, 3-7, 3-13 to 3-15 transaction log file, 1-6 .NET assemblies. See assemblies locking .NET Common Language Runtime, 8-2 to 8-8 indexes, options for, 4-12 NOCHECK option (ALTER TABLE), 5-22 partitioned tables and, 2-20 nodes (indexes), defined, 4-4. See also indexes logging transactions, 1-5 nodes method (XQuery), 3-39 to 3-40 lost transactions, 1-5 nonclustered indexes, 4-8 to 4-9, 4-16 partitioned, 4-19 to 4-20 M nonkey columns in indexes, 4-16 non-Unicode character data types, 2-4 managed code, 8-1 to 8-24 importing and configuring assemblies, 8-9 to 8-14 NOT NULL option, 2-7 mapping database objects to, 8-18 ntext data type, 2-4, 2-12 when to use, 8-8 null blocks, 2-11 managed objects, 8-6, 8-17 to 8-23 NULL constraints, 5-7 aggregates, 8-22 nullability mapping to managed code, 8-18 alias data types, 2-7 stored procedures, triggers, and functions, 8-20 table definitions, 2-14 mapping objects to managed code, 8-18 numeric data type, 2-3, 2-4 masking databases with views, 6-7 nvarchar data type, 2-4, 2-5, 2-13 master database, snapshots of (disallowed), 1-29 max specifier in data types, 2-5, 2-13 O MAX_QUEUE_READER option (CREATE QUEUE), 9-20 Object Explorer (SQL Server Management Studio), 1-10 media, storage. See data storage obtaining index information, 4-23 merging partitions, 2-25 object name resolution, 1-25 messages (Service Broker), 9-7 objects, managed, 8-6, 8-17 to 8-23 queues, 9-6, 9-19 to 9-20 aggregates, 8-22 receiving, 9-29 to 9-31 mapping to managed code, 8-18 sending, 9-26 to 9-28 stored procedures, triggers, and functions, 8-20 types of, 9-5, 9-15 to 9-16, 9-28, 9-31 OFFLINE database option, 1-8 metadata, obtaining offline index queries, 4-12 about databases, 1-10 to 1-12 OLAP databases, 1-3 functions for, 1-12 OLTP databases, 1-3 about indexes, 4-23 to 4-25 ON option (CREATE QUEUE), 9-20 about views, 6-16 ON DELETE clause, FOREIGN KEY constraint, 5-20 about XML schema collections, 5-48 ON UPDATE clause, FOREIGN KEY constraint, 5-19 methods, 8-18 ONLINE database option, 1-8 mapping to, 8-20 ONLINE option, 4-12 model database OPENXML function, 3-20, 3-23 to 3-25 options for, 1-7 namespaces with, 3-26 snapshots of (disallowed), 1-29 optimizing indexes, 4-28 to 4-36 modify method (XQuery), 3-37 to 3-38 Database Engine Tuning Advisor, 4-29 to 4-32 modifying (altering) fragmentation management, 4-33 to 4-36 data constraints, 5-8 optimizing performance. See performance data in databases, 1-30 ORDER BY clause (ALTER PROCEDURE), 7-8 restrictions on, 5-11 order by statement (XQuery), 3-34 triggers. See triggers OUTPUT keyword (CREATE PROCEDURE), 7-13 XML data, 3-37 to 3-38 output parameters for stored procedures, 7-13 to 7-14 functions, 7-20 OWNER (EXECUTE AS clause), 7-38 stored procedures, 7-8 ownership chains (views), 6-15 tables, 2-15
  • 5.
    secondary XML indexes I-5 P READ_WRITE database option, 1-8 real data type, 2-3, 2-5 PAD_INDEX option, 4-22 page splits with indexes, 4-33 to 4-36 rebuilding indexes, 4-35 to 4-36 page-level locks (indexes), 4-12 RECEIVE statement, 9-29 PAGE_VERIFY database option, 1-9 receiving messages (Service Broker), 9-29 to 9-31 parameterized stored procedures, 7-10 to 7-14 recovering transactions, 1-6, 1-8 input parameters, 7-11 to 7-12 RECOVERY database option, 1-8 output parameters and return values, 7-13 to 7-14 recursive triggers, 5-39 Parent column (universal tables), 3-9 RECURSIVE_TRIGGER database option, 1-9 partition functions, 2-21 REFERENCE clause (CREATE/ALTER TABLE), 5-19 partition keys, 4-20 referencing XML schemas, 5-49 partition schemes, 2-22 referential integrity, 5-3 partitioned indexes, 4-19 to 4-20 cascading, 5-19 partitioned tables, 2-18 to 2-26 disallowing rollback of changes, 5-28 partitioned views, 6-5, 6-6, 6-26 enforcing, 5-5 PATH mode (FOR XML), 3-4, 3-11 to 3-12 REINDEX clause (ALTER INDEX), 4-36 path XML indexes, 4-42 RELATED_CONVERSATION parameter (BEGIN DIALOG), 9-31 performance remote service binding, 9-9 file location considerations, 1-4 removing database snapshots, 1-29 assemblies, 8-11 partitioned tables, 2-18 to 2-26 dropping views, 6-14 transaction log file, 1-6 functions, 7-20 indexes stored procedures, 7-8 incorporated free space, 4-21 to 4-22 tables, 2-15 nonclustered indexes, 4-9 XML data, 3-38 optimizing, 4-28 to 4-36 XML schema collections, 5-48 optimizing with views, 6-22 to 6-27 REORGANIZE clause (ALTER INDEX), 4-36 partitioned tables, 2-20 reorganizing indexes, 4-35 to 4-36 single vs. multiple filegroups, 1-18 replace statement (XQuery), 3-38 permissions reports (SQL Server Management Studio), 1-10 assemblies, 8-12 to 8-14 obtaining index information, 4-23 AUTHENTICATE permission, 7-40 restoring from backups. See backups execution context, 7-36 to 7-41 RESTRICTED_USER database option, 1-8 views, 6-7, 6-10, 6-15 RETENTION option (CREATE QUEUE), 9-20 physical data storage retrieving data from databases, 1-30 controlling with multiple filegroups, 1-18 FOR XML clause, 3-2 to 3-15 partitioned tables and, 2-19 AUTO mode, 3-4, 3-7 to 3-8, 3-13 potential growth of, 1-4 EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15 planning databases, 1-4. See also data integrity nested XML, 3-13 to 3-15 planning indexes, 4-2 to 4-9 PATH mode, 3-4, 3-11 to 3-12 clustered indexes, 4-4 to 4-5 RAW mode, 3-4 to 3-6 partitioned, 4-19 to 4-20 how SQL Server accesses data, 4-3 tables without (heaps), 4-6 querying XML data, 3-35 to 3-36 heaps, 4-6 RETURN statement, 7-14 nonclustered indexes, 4-8 to 4-9, 4-16 return statement (XQuery), 3-34 potential growth of physical data storage, 1-4 return values for stored procedures, 7-13 to 7-14 primary filegroups, 1-16 RIGHT partition functions, 2-21 PRIMARY KEY constraints, 4-7, 5-7, 5-9 rolling back failed transactions, 7-31 primary XML indexes, 4-42 root node (indexes), 4-4. See also indexes procedures. See functions; stored procedures ROOT option (FOR XML), 3-4, 3-6, 3-42 processing Service Broker messages, 9-31 routes, message (Service Broker), 9-8 Properties window (SQL Server Management Studio), 1-10 row organization within tables, 2-11 obtaining index information, 4-23 row-level locks (indexes), 4-12 property XML indexes, 4-42, 4-43 rowsets, processing XML data as. See shredding XML data purposes of database, 1-4 rules for data integrity, 5-4 runtimes, 8-2 to 8-8 Q quality of data. See data integrity S query method (XQuery), 3-35 to 3-36, 3-39 SAFE option (assembly trust level), 8-13 queues (Service Broker), 9-6, 9-19 to 9-20 scalar functions, 7-19 to 7-21 schemas, 1-22 to 1-25 object name resolution, 1-25 R OPENXML function with, 3-24 RAID, single filegroups vs., 1-18 XML schemas, 5-5, 5-44 to 5-50 RAW mode (FOR XML), 3-4 to 3-6 searching databases with partitioned indexes, 2-20 RDBMS component, SQL Server, 1-3 secondary XML indexes, 4-42 READ_ONLY database option, 1-8
  • 6.
    I-6 security security structured exception handling, 7-29 assembly permissions, 8-12 SWITCH clause (ALTER TABLE), 2-25 encrypting views, 6-18 switching partitions, 2-25 execution context, 7-36 to 7-41 sys catalog views, 1-11, 6-16 managed code, 8-5 obtaining index information, 4-24 masking databases with views, 6-7 sys.dm_index_ functions, 4-24, 4-33 Service Broker, 9-12 to 9-13 sysindexes system table, 4-21 SELECT statements sysname data type, 2-4 FOR XML clause, 3-2 to 3-15 system stored procedures, 7-2 to 7-9 AUTO mode, 3-4, 3-7 to 3-8, 3-13 altering and dropping, 7-8 EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15 creating, 7-5 to 7-8 nested XML, 3-13 to 3-15 EXECUTE AS clause, 7-38 to 7-41 PATH mode, 3-4, 3-11 to 3-12 managed, 8-20 RAW mode, 3-4 to 3-6 obtaining database information, 1-12 OPENXML function in, 3-20, 3-23 to 3-25 obtaining index information, 4-23 namespaces with, 3-26 parameterized, 7-10 to 7-14 WITH CHECK OPTION clause, 6-19 system-supplied data types, 2-3 to 2-5 SELF (EXECUTE AS clause), 7-38 SEND statement, 9-28 T sending messages (Service Broker), 9-26 to 9-28 table data type, 2-4 Service Broker, 9-2 to 9-24 table-level locks (indexes), 4-12 architecture and functionality tables, 2-10 to 2-15 conversation architecture, 9-7 to 9-9 without clustered indexes (heaps), 4-6 conversation process, 9-10 large data values, 2-12 to 2-13 security, 9-12 to 9-13 modifying and removing, 2-15 system architecture, 9-5 to 9-6 partitioned, 2-18 to 2-26 creating broker objects, 9-14 to 9-22 row organization, 2-11 sending and receiving messages, 9-26 to 9-31 virtual. See views service objects, 9-6, 9-21 table-valued functions, 7-19, 7-22 to 7-25 service programs, 9-6 Tag column (universal tables), 3-9 shredding XML data, 3-19 to 3-27 tempdb database, snapshots of (disallowed), 1-29 signing, 7-41 text data type, 2-4, 2-5, 2-12 SINGLE_USER database option, 1-8 “text in row” option, 2-12 smalldatetime data type, 2-3 time and date data types, 2-3 smallint data type, 2-3 timestamp columns, 2-15 smallmoney data type, 2-3 timestamp data type, 2-4 snapshots, database, 1-28 to 1-30 tinyint data type, 2-3 sort order for column data, 2-14 TOP parameter, RECEIVE statement, 9-29 sources of database information, 1-10 to 1-12 transactions sp_ procedures, in general. See stored procedures defined, 1-5 sp_depends procedure, 7-9 failed, rolling back, 7-31 special column types, 2-15 logging, 1-5 special data types, 2-4 throughput, 1-4 sp_helpconstraint procedure, 5-21 Transact-SQL, managed code vs., 8-8 sp_helpindex procedure, 4-23 transport security (Service Broker), 9-13 splitting partitions, 2-26 triggers, 5-5, 5-26 to 5-40 sp_tableoption procedure, 2-12, 2-13 AFTER triggers, 5-28 sp_xml_prepareddocument procedure, 3-20, 3-21, 3-26 constraints vs., 5-28 sp_xml_removeddocument procedure, 3-20, 3-22 DELETE triggers, 5-32 SQL options for databases, 1-9 INSERT triggers, 5-30 SQL Server, 1-3 INSTEAD OF triggers, 5-28, 5-35 assemblies in, 8-10 managed, 8-20 Common Language Runtime (CLR), 8-2 to 8-8 nested, 5-37 SQL Server Management Studio, 1-10 recursive, 5-39 sql_variant data type, 2-4 UPDATE triggers, 5-33 standard views, 6-5 trust levels, assemblies, 8-12 to 8-14 starting Service Broker conversations, 9-26 trust relationships, 7-40 STATUS option (CREATE QUEUE), 9-19 TRY...CATCH blocks, 7-29 to 7-33 storage. See data storage XACT_ABORT and XACT_STATE options, 7-32 stored procedures, 7-2 to 7-9 Tune mode (Database Engine Tuning Advisor), 4-30 altering and dropping, 7-8 tuning indexes, 4-28 to 4-36 creating, 7-5 to 7-8 Database Engine Tuning Advisor, 4-29 to 4-32 EXECUTE AS clause, 7-38 to 7-41 fragmentation management, 4-33 to 4-36 managed, 8-20 TYPE option (FOR XML), 3-4, 3-14 obtaining database information, 1-12 type safety, 8-5 obtaining index information, 4-23 typed XML, 5-44, 5-49 parameterized, 7-10 to 7-14 types. See data types storing messages. See queues (Service Broker)
  • 7.
    XQuery specification I-7 U W UDDTs. See alias data types where statement (XQuery), 3-34 Unicode character data types, 2-4 WITH CHECK OPTION clause, 6-19 UNIQUE constraints, 5-7, 5-15 WITH CLEANUP clause (END CONVERSATION), 9-31 unique indexes, 4-13 WITH ENCRYPTION option uniqueidentifier data type, 2-4, 2-15 ALTER PROCEDURE statement, 7-8 universal tables, 3-9 to 3-10 CREATE/ALTER VIEW statement, 6-18 UNSAFE option (assembly trust level), 8-13 WITH ERROR clause (END CONVERSATION), 9-31 untyped XML, 5-44 WITH NOCHECK option (ALTER TABLE), 5-22 UPDATE statements WITH option (CREATE INDEX), 4-11 responding to with triggers, 5-33. See also triggers WITH PERMISSION_SET clause (CREATE ASSEMBLY), 8-13 restricting data values for, 5-11 updating data. See data modification X user-defined data types, 2-6 to 2-7 XACT_ABORT option (TRY...CATCH), 7-32 managed, 8-22 XACT_STATE option (TRY...CATCH), 7-32 user-defined filegroups, 1-16 XML FOR XML clause, 3-2 to 3-15 V AUTO mode, 3-4, 3-7 to 3-8, 3-13 validating typed XML, 5-49 EXPLICIT mode, 3-4, 3-9 to 3-10, 3-15 VALIDATION clause (CREATE MESSAGE TYPE), 9-15 nested XML, 3-13 to 3-15 value method (XQuery), 3-35 to 3-36, 3-39 PATH mode, 3-4, 3-11 to 3-12 value XML indexes, 4-42, 4-43 RAW mode, 3-4 to 3-6 varbinary data type, 2-4, 2-5, 2-13 in-memory node trees, 3-21 varchar data type, 2-4, 2-5, 2-13 namespaces, working with, 3-26 variable blocks, 2-11 declaring in XQuery queries, 3-34 variable-length data types, 2-3, 2-5 query, value, and exist methods, 3-35 to 3-36 viewing XML schema information, 5-48 shredding XML data, 3-19 to 3-27 views, 6-1 to 6-7 typed, 5-44, 5-49 altering and dropping, 6-13, 6-19 xml data type, 2-4, 3-30 to 3-40 catalog views, 1-11, 6-16 extracting data from, 3-39 to 3-40 obtaining index information, 4-24 indexes of columns with, 4-39 to 4-43 creating, 6-9 to 6-10 native XML storage and functionality, 3-31 to 3-32 encrypting, 6-18 XML indexes, 4-39 to 4-43 indexed views, 6-5, 6-24 XML schema collections, 5-47 multi-statement table-valued functions, 7-19, 7-24 XML schemas, 5-5, 5-44 to 5-50 obtaining information on, 6-16 XMLDATA option (FOR XML), 3-4 optimizing performance with, 6-22 to 6-27 XMLSCHEMA option (FOR XML), 3-4 ownership chains, 6-15 XPath syntax, 3-11 partitioned views, 6-5, 6-6, 6-26 schema declarations with, 3-24 types of, 6-5 XML namespaces with, 3-26 virtual tables. See views XQuery specification, 3-31 to 3-34