SQL Server Views

rriness 1,226 views 15 slides Oct 21, 2010
Slide 1
Slide 1 of 15
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15

About This Presentation

No description available for this slideshow.


Slide Content

Views
Similar to an Access query
Predefined SELECT statement
At most basic level specifies which columns and rows to
return
Provides a virtual table
SELECT * FROM Customers represents rows and
columns but isn’t for storing data

Reasons for Views
Reduce database complexity
‘Hide’ sensitive data
Improve query performance

Reduce Complexity
Provide access to data from multiple tables
Normalization doesn’t get in the way
Limit number of columns returned
Instead of returning all columns just return ones
commonly used

Hiding Data
Provide only columns that are appropriate
Provide only rows that are appropriate
Can have multiple views on one table with different
fields and criteria for different user groups
Can also hide table and database organization

Ease of Use
Can provide access to current information
List only students who are currently enrolled in a course
Can organize data for common reports
List students with assignments for a section

View Options
Encryption prevents viewing the SQL statement
Schema binding ties the view to objects it depends on
Can’t drop a table – or column – that’s referenced in a
bound view
Can sort results
Requires use of TOP option
Can also use ORDER BY in SELECT where view is used

Performance
By default views run just as a query processed from
command line
Adds second step to execution:
select from view
execute view itself
Can add an index to speed execution

Indexed Views
Speeds up execution of query, but has rules:
View must be schema-bound
View can’t reference other views (only tables &
functions)
Two-part names required, and must be same owner as
view (dbo.Students)

Indexed Views (cont.)
View and source tables must be in same database
Functions used must be deterministic
ANSI_NULLS and QUOTED_IDENTIFIERS must be on
when view and source tables created
ANSI_NULL – Set to on requires use of IS to compare to
NULL
QUOTED_IDENTIFIERS – Set to on indicates that double
quotes identify object names

Deterministic
An indexed view must be deterministic
Result of calculation is the same with same inputs
DateAdd is deterministic
GetDate is non-deterministic

Places to Consider An Index
Joins and aggregations of large tables
Repeated patterns of queries (common WHERE
clause)
Repeated aggregations on the same or overlapping
sets of columns
Repeated joins of the same tables on the same keys

Indexes’ Downside
Have another list that must be maintained when data
changes
Can’t reference other views
Tables must be in same database
Cannot sort view in definition
Can use ORDER BY when view referenced in SELECT
Unique clustered index must be created before any
other indexes can be created

Updateable Views
Can update base tables through a view.
To have an updateable view,
Can’t include a DISTINCT or TOP clause.
Field list can’t include an aggregate function.
Field list can’t include a calculated value.
Can’t include a GROUP BY or HAVING clause.
Can’t include the UNION operator.

Updating rows using a view
Use the UPDATE statement to update a table through
a view
Use the view name in the UPDATE clause
The view must be updatable (prior slide)
The UPDATE statement can’t update data in more than
one table.

WITH CHECK
If WITH CHECK is used when the view is created,
trying to change a row such that it wouldn’t be
included in the view result will result in an error.
If a view only returns rows where city = ‘Olympia’, and
city is changed to ‘Lacey’ an error occurs