Topic: SQL Server

Professional SQL Server 2005 Programming (0764584340) cover image

Professional SQL Server 2005 Programming

Robert Vieira
ISBN: 978-0-7645-8434-3
912 pages
December 2006
This title is out-of-print and not currently available for purchase from this site.

Do you think you've discovered an error in this book? Please check the list of errata below to see if we've already addressed the error. If not, please submit the error via our Errata Form. We will attempt to verify your error; if you're right, we will post a correction below.

ChapterPageDetailsDatePrint Run
10 Error in Text
under Rules: "Unlike rules, constraints aren't really objects... but rather pieces of metadata"

then under defaults: "we have constraints which are objects, and rules, which are not objects but metadata

Rob Vieira says "The second statement is incorrect the first is correct."
64 Error in Code
At the bottom of page 64, the syntax for the DELETE statement has a bracket mismatch.


should be

74 Typo in Text
"It is entirely possible to have to objects with the same name"

should be

"It is entirely possible to have two objects with the same name"
155 Error in Text
The third line in the first paragraph reads:

"Okay, the real question is one of whether you already understand the most basic tenants of relational database design yet or not."

It should be "the most basic tenents."

169 Error in Text

should be:

450 Error in Code
On page 450 of Professional SQL Server 2005 Programming, there begins a code block that is an improper carry forward from the 2000 edition of the book. The discussion is valid, and the results shown are from the proper code (as opposed to the code shown in the book).
Correct code:
USE AdventureWorks

/* Build the table that we'll be playing with this time */
SELECT SalesOrderID, CustomerID
INTO CursorTable
FROM Sales.SalesOrderHeader
WHERE SalesOrderID BETWEEN 43661 AND 43665

-- Declare our cursor
GLOBAL -- So we can manipulate it outside the batch
SCROLL -- So we can scroll back and see the changes
SELECT SalesOrderID, CustomerID
FROM CursorTable

-- Declare our two holding variables
DECLARE @SalesOrderID int
DECLARE @CustomerID varchar(5)
-- Get the cursor open and the first record fetched
OPEN CursorTest
FETCH NEXT FROM CursorTest INTO @SalesOrderID, @CustomerID
-- Now loop through them all
PRINT CAST(@SalesOrderID AS varchar) + ' ' + CAST
(@CustomerID AS varchar)
FETCH NEXT FROM CursorTest INTO @SalesOrderID, @CustomerID
-- Now it's time to clean up after ourselves
CLOSE CursorTest


DROP TABLE CursorTable
727 Typo
second sentence under COPY_ONLY:
For example, logs are differential...

should read:
For example, log and differential...
730-1 Error in Text
The DBO_ONLY command has been replaced by the RESTRICTED_USER command. The DBO_ONLY is available only for backward compatibility reasons.
839 Typo in Text
Notifying people interested in concerns...

should be:

Notifying people interested in concerts...