Re: SQL2005: Mysteriöser Fehler beim Konvertieren von nvarchar in uniqueidentifier

Tech-Archive recommends: Fix windows errors by optimizing your registry



"Helge C. Rutz" <news050424@xxxxxxxxxxxxxx> schrieb im Newsbeitrag
news:4to7boF12nbj9U1@xxxxxxxxxxxxxxxxxxxxx

"Frank Kalis" wrote:
Helge C. Rutz schrieb:
Ich bitte hiermit alle Interessierten das folgende Testscript einmal
auszuprobieren und über das Ergebnis zu berichten.
Danke für das Skript!
Ich kann es leider erst heute abend gegen SQL Server 2005 SP 1 laufen
lassen. Auf SQL Server 2000 SP 4 gibt keine Fehler. Falls bis heute
abend kein anderer hierzu entscheidende Hinweise gepostet hat, werde
ich das mal in der private Newsgroup aufbringen. Kannst Du mir noch die
üblichen Informationen wie SELECT @@VERSION, usw... dafür geben?


ich habe das auf SQL 2005 mit und ohne SP1 getestet.
Sowohl Dev/Ent und Std. Edition.
Meine lokale Version ist:
Microsoft SQL Server 2005 - 9.00.2153.00 (Intel X86) May 8 2006
22:41:28 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition
on Windows NT 5.1 (Build 2600: Service Pack 2)


So, wir haben eine Antwort von Umachandar Jayachandran aus der private
Newsgroup:
<quote>
It is a feature. He is basically using unsafe expressions in the SELECT
list (specifically relying on the ON clause of LEFT JOIN on tbl3). And there
is no guarantee when the SELECT list will get evaluated due to optimizations
we do for matching computed column expressions for example. So you can get
errors depending on when the CAST gets evaluated before or after the filter
that eliminates the offending rows. This is documented in BOL in the
Backward Compatibility\Behavior Changes topic.
Also, you might still encounter these errors in SQL Server 2000 albeit
in less aggressive manner. He has to use CASE expression in the SELECT
list to perform conditional CAST or CONVERT to avoid the problem or avoid
designing schema elements like this that represent different domains of
data.
</quote>
Ausserdem hat er noch 2 Links beigelegt, die das geänderte Verhalten
dokumentieren:
http://msdn2.microsoft.com/en-us/library/ms143359.aspx
http://msdn2.microsoft.com/en-us/library/ms188295.aspx

Es ist also ein "Feature", wie Christoph bereits vermutet hat. :-)

HTH.
--
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.de
Heute schon gebloggt? http://www.insidesql.de/blogs


.



Relevant Pages