caching levels, 640-641
Case function/expression, 106-109
Cast() function, 115-118
catalog views, 648
Char() function, 129
character strings, 57-58
Unicode, 58-59
CharIndex() function, 127-128
Close statements, 97
CLR, 316-317
assembly process, 317
cataloging assemblies, 330-331
cataloging procedures, 332
design and performance considerations, 425-426
developing and deploying database objects in Visual Studio, 320
developing and deploying database objects without Visual Studio, 324-329
finding the version of .NET Framework, 332-333
minimally required namespaces, 320
pros and cons, 318-319
support for, 319-320
CLR code
benefits of new transaction paradigm, 424
distributed transactions, 420-422
explicit transactions, 423-424
isolation level, 419
nested transactions, 420
transaction duration, 420
transactions in, 416-417
TransactionScope class, 417-419
CLR database objects, debugging, 480-484
CLR functions, 356
DataAccess property, 359
IsDeterministic attribute, 360
IsPrecise attribute, 360
Name attribute, 360
scalar-valued, 356-358
SqlFunction attribute, 359-360
SystemDataAccess attribute, 360
table-valued, 360-372
T-SQL vs. CLR table-valued functions, 372
CLR stored procedures, 216
connection context, 340-341
data types mapping, 338
database access from, 337-338
LOB parameters, 349-354
parameters, 346
returning custom records, 343-345
returning results, 341-343
returning value, 339-340
SqlCommand, 346-348
SqlDataReader, 348-349
structure, 336-337
CLR triggers
creation of DDL triggers, 379-383
creation of DML triggers, 373-378
supported features, 373
CLR user-defined types (UDTs), 386
accessing values, 400-401
aggregates, 404-416
aggregation methods, 404-406
attributes, 391
comparing values, 402
conversion methods, 393-394
converting values, 401-402
custom methods and SqlMethodAttribute, 394-395
DefaultValue method, 394
deploying aggregates, 411
deploying without Visual Studio 2005, 395
IBinarySerialize interface, 406-407
interfaces, 391-392
invoking static methods, 399-400
limitations of, 403-404
namespaces, 391
populating tables, 400
properties, 392-393
SqlUserDefinedAggregate attribute, 407-411
structure of managed UDTs, 386-390
in tables and variables, 399
updating values, 402-403
using, 395-399
using aggregates, 412-416
using in multiple databases, 403
Coalesce() function, 114-115
Command Parser, 638
Common Language Runtime (CLR). See CLR
common table expressions, 234-237
compilation, 639
compilation cost factor, 645
conditional statements, 81-86
Configuration Manager, 3-6
connections, managing, 5-6
conversion functions, 115-118
Convert() function, 115-118
Count() function, 133
CPU cost, 645
Create Function statement, 304-305
Create Procedure statement, 29-30
cross-database ownership chains, 549-550
CTEs. See common table expressions
cursor data type, 67
cursors, 91, 499
@@cursor_rows, 96-97
@@fetch_status, 96
Close statements, 97
Deallocate statements, 97
Declare Cursor statements, 95
Fetch statements, 96
Open statements, 96
problems, 97
T-SQL, 92-95
uses of, 97-100