sql server dba training | sql server dba training online | sql server dba course
SQL Server - Introduction to TSQL
-
Upload
peter-gfader -
Category
Education
-
view
2.411 -
download
1
Transcript of SQL Server - Introduction to TSQL
![Page 1: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/1.jpg)
SQL Server 2008 for DevelopersUTS Short Course
![Page 2: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/2.jpg)
Specializes in
C# and .NET (Java not anymore)
TestingAutomated tests
Agile, ScrumCertified Scrum Trainer
Technology aficionado • Silverlight• ASP.NET• Windows Forms
Peter Gfader
![Page 3: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/3.jpg)
http://sharepoint.ssw.com.au/Training/UTSSQL/Pages/
Course Timetable Course Materials
Course Website
![Page 4: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/4.jpg)
Course OverviewSession
Date Time Topic
1Tuesday03-08-2010
18:00 - 21:00
SQL Server 2008 Management Studio
2Tuesday10-08-2010
18:00 - 21:00
T-SQL Enhancements
3Tuesday17-08-2010
18:00 - 21:00
High Availability
4Tuesday24-08-2010
18:00 - 21:00
CLR Integration
5Tuesday31-08-2010
18:00 - 21:00
Full-Text Search
![Page 5: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/5.jpg)
SQL Management Studio
SQL Configuration Manager
Consoles
SQLCMD PowerShell
SQL Profiler
SQL Database Tuning Advisor
Last Week
![Page 6: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/6.jpg)
1. How to setup maintenance plans over night
2. Database encryption
1. Data2. Source code (Stored procs)
3. Best practices
1. Typical maintenance plans2. Policies
Last Week - Additional
![Page 7: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/7.jpg)
1. Modify maintenance plan
2. 2nd page in wizard (new plan)
![Page 8: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/8.jpg)
Encrypting data - Transparent Data Encryption (TDE)http://msdn.microsoft.com/en-us/library/bb934049.aspx http://www.acorns.com.au/blog/?p=147
Encrypting Connections to SQL Serverhttp://msdn.microsoft.com/en-us/library/ms189067.aspx
Encrypting source codehttp://www.codeproject.com/KB/database/ProtectSQLCodeObject.aspx
Database encryption
![Page 9: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/9.jpg)
http://ola.hallengren.com/
Steps• Backup• Integrity check • Index optimization
Solution used in• mission-critical environments in • many organizations.
Best practices - Maintenance
![Page 10: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/10.jpg)
Security Best Practices
http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SQL2005SecBestPract.doc
Security Best Practices Checklist
http://technet.microsoft.com/en-us/library/cc966456.aspx
Best practices - Security
![Page 11: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/11.jpg)
Create a schema called SalaryCreate a table called Employees in SchemaCreate a user called ManagerGive only manager permission to update/insert/delete in schemaCreate a user called PeterGive Peter only read to schema (=salary)Create a user AliceDeny everything for Alice in Salary
Homework?
![Page 12: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/12.jpg)
New Data Types
Inline variable assignment
Table Value Parameters
DDL Triggers
CTE (Common Table Expressions)
TOP %, XML Queries
PIVOT/UNPIVOT
ADO.NET
Agenda
![Page 13: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/13.jpg)
bigint, int, smallint, tinyint
-2^63 ... 2^63-1 0..255
Bit (0 or 1)
decimal = numeric
Exact type Numbers -10^38 +1 ... 10^38 –
Money, smallmoney
accuracy to a ten-thousandth money unit Smallmoney = smaller money
Datatypes - Exact Numerics
![Page 14: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/14.jpg)
Floating point numeric data
float real
Datatypes – Approximate Numerics
![Page 15: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/15.jpg)
char
Fixed length
varchar
Variable length
Datatypes - text
![Page 16: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/16.jpg)
char, varchar, text
Ascii - 1 byte
nchar, nvarchar, ntext
Unicode - 2 bytes
binary, varbinary, image
Datatypes - text
![Page 17: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/17.jpg)
SQL 2008 now has the following data types to represent time:
DateTime SmallDateTime Date Time DateTime2 – really a BigDateTime
• Min Date is 1st Jan 0000• Max date 31st Dec 9999 – Y10K BUG!!
DateTimeOffset
Date and Time
![Page 18: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/18.jpg)
Date Time details
Data type Format Range Accuracy Storage size (bytes)
User-defined fractional second precision
Time zone offset
time hh:mm:ss[.nnnnnnn]
00:00:00.0000000 through 23:59:59.9999999
100 nanoseconds
3 to 5 Yes No
date YYYY-MM-DD0001-01-01 through 9999-12-31
1 day 3 No No
smalldatetime
YYYY-MM-DD hh:mm:ss
1900-01-01 through 2079-06-06
1 minute 4 No No
datetime YYYY-MM-DD hh:mm:ss[.nnn]
1753-01-01 through 9999-12-31
0.00333 second 8 No No
datetime2 YYYY-MM-DD hh:mm:ss[.nnnnnnn]
0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999
100 nanoseconds
6 to 8 Yes No
datetimeoffset
YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm
0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 (in UTC)
100 nanoseconds
8 to 10 Yes Yes
![Page 19: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/19.jpg)
cursor
table
Timestamp = rowversion
binary number Reflects data modifications
uniqueidentifier = Guid
Format: 04c4ce04-16c1-406f-a895-5dd321db7f0b
Datatypes - Other
![Page 20: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/20.jpg)
Filestream
Sparse Columns
Filtered Indexes
Spatial Data
HierarchyID
DATE and TIME data types
New Data Types
![Page 21: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/21.jpg)
I am designing an Employee table that needs to cater for employee photographs. What should I do?
Example: Storing images
![Page 22: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/22.jpg)
I am designing an Employee table that needs to cater for employee photographs. What should I do?
You can store the image in the database (blob)You can store a URL to the image in the database (Recommended for SQL2005)
http://www.ssw.com.au/ssw/standards/Rules/RulestoBetterSQLServerdatabases.aspx#ImageReplaceWithURL
blob vs. file system
![Page 23: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/23.jpg)
You can store the image in the database (blob)
Database grows really bigBackups take longerYour code needs to convert the bytes back into an imageYour images are in sync with your data
blob
![Page 24: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/24.jpg)
You can store a URL to the image in the database (Recommended for SQL2005)
Database is smallerEasily validate or change the image (you can look at it on the file system)Data could become out of sync with the file systemNeed to backup the database and the file system
File system
![Page 25: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/25.jpg)
Filestream to the rescue
Implemented as a special varbinary(max) where data is stored as a blob on the file systemAllows you to have transactionally consistentIntegrated backup and restore of your binary imagesSize limitation is the size of your hard drive’s free space
Filestream
![Page 26: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/26.jpg)
Q:\ I’ve got an Contacts table with 200,000 rows. To support the latest Web 2.0 trends we want to also record the contact’s blog address. What should I do?
Problem
![Page 27: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/27.jpg)
A:\ Just add a new BlogUrl column in
Solution?
![Page 28: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/28.jpg)
A:\ Just add a new BlogUrl column in
Q:\ What’s the problem with that?
A:\ Most of the entries in your table will be null, it wastes a lot of database space
Solution?
![Page 29: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/29.jpg)
Use a sparse column
These columns are new to SQL 2008 They are optimized for storing NULL values
Solution
![Page 30: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/30.jpg)
Sparse ColumnsData type Nonsparse bytes Sparse bytes NULL percentage
bit 0.125 4.125 98%
tinyint 1 5 86%
smallint 2 6 76%
int 4 8 64%
bigint 8 12 52%
real 4 8 64%
float 8 12 52%
smallmoney 4 8 64%
money 8 12 52%
smalldatetime 4 8 64%
datetime 8 12 52%
uniqueidentifier 16 20 43%
date 3 7 69%
![Page 31: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/31.jpg)
Sparse ColumnsData type Nonsparse bytes Sparse bytes NULL Percentage
datetime2(0) 6 10 57%
datetime2(7) 8 12 52%
time(0) 3 7 69%
time(7) 5 9 60%
datetimetoffset(0) 8 12 52%
datetimetoffset (7) 10 14 49%
decimal/numeric(1,s)
5 9 60%
decimal/numeric(38,s)
17 21 42%
vardecimal(p,s) Use the decimal type as a conservative estimate.
![Page 32: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/32.jpg)
Sparse ColumnsData type Nonsparse bytes Sparse bytes NULL Percentage
sql_variant Varies with the underlying data type
varchar or char 4+avg. data 2+avg. data 60%
nvarchar or nchar 4+avg. data 2+avg. data 60%
varbinary or binary 4+avg. data 2+avg. data 60%
xml 4+avg. data 2+avg. data 60%
hierarchyId 4+avg. data 2+avg. data 60%
![Page 33: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/33.jpg)
Allows you to add an index to a column with a where clause
Useful for indexing columns with null values in them
Filtered Indexes
![Page 34: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/34.jpg)
Geometry
Geography
Virtual Earth Integration
Planar vs Geodetic Algorithms
Separate install for spatial assemblies
http://www.conceptdevelopment.net/Database/Geoquery/
Spatial Data Types
![Page 35: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/35.jpg)
Spatial Datatypes Hierarchy
![Page 36: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/36.jpg)
Geometry allows you to represent and process polygons
Spatial Data Types
![Page 37: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/37.jpg)
Employee with a ManagerID column (self join)
New HierarchyID data type
Can be indexed using:• Depth First • Breadth First
How do I represent an Org Chart?
![Page 38: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/38.jpg)
A depth-first index, rows in a subtree are stored near each other. For example, all employees that report through a manager are stored near their managers' record.
Depth First Search
![Page 39: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/39.jpg)
A breadth-first stores the rows each level of the hierarchy together. For example, the records of employees who directly report to the same manager are stored near each other.
Breadth First Search
![Page 40: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/40.jpg)
Instead of:
DECLARE @myVar intSET @myVar = 5
You can:
DECLARE @myVar int = 5
Inline Variable Assignment
![Page 41: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/41.jpg)
Pass in a table as an argument to a SPROC
Instead of:
exec sp_MySproc 'murphy,35;galen,31;samuels,27;colton,42‘
SPROC needs to then parse that string
Table Value Parameters
![Page 42: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/42.jpg)
You can do this instead
CREATE TYPE PeepsType AS TABLE (Name varchar(20), Age int) DECLARE @myPeeps PeepsType INSERT @myPeeps SELECT 'murphy', 35 INSERT @myPeeps SELECT 'galen', 31 INSERT @myPeeps SELECT 'samuels', 27 INSERT @myPeeps SELECT 'colton', 42exec sp_MySproc2 @myPeeps
Table Value Parameters
![Page 43: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/43.jpg)
The SPROC would look like this:
CREATE PROCEDURE sp_MySproc2(@myPeeps PeepsType READONLY)
Table Value Parameters
![Page 44: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/44.jpg)
Auditing, regulating schema changes, capture events on create_table, alter_procedure, drop_login etc
DDL Triggers
![Page 45: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/45.jpg)
PIVOT
![Page 46: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/46.jpg)
CTE (Common Table Expression) Before
![Page 47: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/47.jpg)
CTE (Common Table Expressions) After
![Page 48: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/48.jpg)
ROW NUMBER – see example
TRY/Catch in queries – see example
Top % WITH TIES
select top with tie feature( if top 10 and there are 15 that match number 10 will bring back all 15)
More features
![Page 49: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/49.jpg)
SELECT TOP 3 Person.FirstName, Person.LastName, PersonPhone.PhoneNumber
FROM AdventureWorks.Person.Person
INNER JOIN AdventureWorks.Person.PersonPhone ON
PersonPhone.BusinessEntityID = Person.BusinessEntityID
FOR XML RAW
Working with XML - RAW
![Page 50: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/50.jpg)
<row FirstName="Ken" LastName="Sánchez" PhoneNumber="697-555-0142"/>
<row FirstName="Terri" LastName="Duffy" PhoneNumber="819-555-0175"/>
<row FirstName="Roberto" LastName="Tamburello" PhoneNumber="212-555-0187"/>
Working with XML - RAW
![Page 51: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/51.jpg)
What happened to our relationships?
RAW doesn’t show our table relationships but gives us a flat XML hierarchy
Working with XML - RAW
![Page 52: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/52.jpg)
SELECT TOP 3 Person.FirstName, Person.LastName, PersonPhone.PhoneNumber
FROM AdventureWorks.Person.Person
INNER JOIN AdventureWorks.Person.PersonPhone ON
PersonPhone.BusinessEntityID = Person.BusinessEntityID
FOR XML AUTO
Working with XML - Auto
![Page 53: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/53.jpg)
<AdventureWorks.Person.Person FirstName="Ken" LastName="Sánchez">
<AdventureWorks.Person.PersonPhone PhoneNumber="697-555-0142"/>
</AdventureWorks.Person.Person>
Working with XML - Auto
![Page 54: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/54.jpg)
Great, but what if I needed to format the XML to output into a certain schema
Working with XML - Auto
![Page 55: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/55.jpg)
SELECT TOP 3
1 AS TAG,
NULL AS PARENT,
BusinessEntityID AS [Person!1!BusinessEntityID],
FirstName AS [Person!1!FirstName!ELEMENT]
FROM AdventureWorks.Person.Person
FOR XML EXPLICIT
Working with XML - Explicit
![Page 56: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/56.jpg)
<Person BusinessEntityID="285“>
<FirstName>Syed</FirstName>
</Person>
<Person BusinessEntityID="293">
<FirstName>Catherine</FirstName>
</Person>
<Person BusinessEntityID="295">
<FirstName>Kim</FirstName>
</Person>
Working with XML - Explicit
![Page 57: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/57.jpg)
Can control how the XML gets output
Ugly query
Is there a better way?
Working with XML - Explicit
![Page 58: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/58.jpg)
SELECT TOP 3
BusinessEntityID "Person/@BusinessEntityID",
FirstName "Person/FirstName"
FROM AdventureWorks.Person.Person
FOR XML PATH ('')
Working with XML - PATH
![Page 59: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/59.jpg)
XQuery is a query language for XML Data
Working with XML - XQuery
![Page 60: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/60.jpg)
DECLARE @x XML
SET @x = '<christmaslist><person name = "betty" gift = "camera"/><person name = "zach" gift = "elmo doll"/><person name = "brad" gift = "socks"/></christmaslist>'
XQuery – Declaring our XML string
![Page 61: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/61.jpg)
SELECT @x.exist('/christmaslist/person[@gift="socks"]')
SELECT @x.exist('/christmaslist/person[@gift="lump of coal"]')
SELECT @x.exist('/christmaslist/person[@gift="Socks"]‘)
SELECT @x.value('/christmaslist[1]/person[1]/@name', 'VARCHAR(20)‘)
SELECT @x.query('/christmaslist/person')
XQuery - Querying
![Page 62: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/62.jpg)
query()
value()
exist()
nodes()
modify()
XQuery - Querying
![Page 63: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/63.jpg)
http://msdn.microsoft.com/en-us/library/ms345117.aspx
XQuery - Resources
![Page 64: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/64.jpg)
ADO.NET gives you full control over how you access and retrieve data from the data source
Strongly typed data sets
Work in disconnected mode
ADO.NET
![Page 65: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/65.jpg)
SQLConnection
Manages the connection to the database
SQLCommand
Defines the data to be read, updated etc.
SQLDataAdapter
Runs the SQLCommand against the database
DataSet
A complete in-memory copy of the data (tables, relationships, data types…) Search, filter, navigate your data – without even being connected to the
database!
ADO.NET
![Page 66: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/66.jpg)
Randomize Select output
Repeat statements with GO x
TSQL Tricks
![Page 67: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/67.jpg)
Spatial Data playground
http://www.conceptdevelopment.net/Database/Geoquery/
Hidden Features in SQL Server
http://stackoverflow.com/questions/121243/hidden-features-of-sql-server
Top 10 Hidden Gems in SQL Server
http://technet.microsoft.com/en-au/library/cc917696.aspx
Resources 1/2
![Page 68: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/68.jpg)
What to do when you take over a new SQL Server box?
http://www.brentozar.com/sql/blitz-minute-sql-server-takeovers/
Resources 2/2
![Page 69: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/69.jpg)
T-SQL Enhancements
Download from Course Materials Site (to copy/paste scripts) or type manually
http://sharepoint.ssw.com.au/training/UTSSQL/
Session 2 Lab
![Page 70: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/70.jpg)
Free chats and webcasts
List of newsgroups
Microsoft community sites
Community events and columns
Where Else Can I Get Help?
www.microsoft.com/technet/community
Where else can I get help?
![Page 72: SQL Server - Introduction to TSQL](https://reader036.fdocuments.us/reader036/viewer/2022081505/554c936ab4c905b80b8b48c7/html5/thumbnails/72.jpg)
Thank You!
Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA
ABN: 21 069 371 900
Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105