Microsoft מפיצה את Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) כקובץ הניתן להורדה. מאחר שהתיקונים מצטברים, כל מהדורה חדשה מכילה את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו במהדורת התיקון הקודמת של SQL Server 2008 R2 Service Pack 2.
תופעות
אתה עשוי לקבל תוצאות שגויות בעת הפעלת שאילתה ב-Microsoft SQL Server 2008 R2 SP2 או ב-Microsoft SQL Server 2012 כאשר התנאים הבאים מתקיימים:
-
השאילתה משתמשת בפסוקית CROSS APPLY לגבי התוצאה של פסוקית JOIN מלאה .
-
נתוני הטבלה מוצגים על-ידי התקשרות לפונקציה המוגדרת על-ידי המשתמש המוגדרת על-ידי הטבלה במשפט JOIN מלא .
-
הפונקציה מקבלת שם עמודה כפרמטר, ומחזירה תוצאות כטבלה.
לדוגמה, אתה מפעיל שאילתה הדומה לפעולות הבאות:
SELECT * FROM tablename CROSS APPLY ( SELECT * FROM (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 FULL JOIN (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 ON s1.nodeName = s2.nodeName ) s
הערה בעיה זו אינה מתרחשת ב-Microsoft SQL Server 2012.
פתרון
מידע אודות עדכון מצטבר
עדכון מצטבר 7 עבור SQL Server 2012
התיקון לבעיה זו הופץ לראשונה בעדכון המצטבר 7. לקבלת מידע נוסף אודות אופן ההשגה של חבילת עדכון מצטברת זו עבור SQL Server 2012, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:
2823247 חבילת עדכון מצטבר 7 עבור SQL Server 2012הערה מאחר שבונה הגירסאות מצטבר, כל מהדורת תיקון חדשה מכילה את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו במהדורת התיקון הקודמת של SQL Server 2012. אנו ממליצים לשקול להחיל את הגירסה העדכנית ביותר שמכילה את התיקון האחרון שמכיל תיקון חם זה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:
2692828 SQL Server 2012 בונה שהופצו לאחר ש-SQL Server 2012 הופץ
עדכון מצטבר 3 עבור SQL Server 2012 SP1
התיקון לבעיה זו הופץ לראשונה בעדכון המצטבר 3. לקבלת מידע נוסף אודות אופן ההשגה של חבילת עדכון מצטברת זו עבור SQL Server 2012 SP1, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:
2812412 חבילת עדכון מצטבר 3 עבור SQL Server 2012 Service Pack 1הערה מאחר שבונה הגירסאות מצטבר, כל מהדורת תיקון חדשה מכילה את כל התיקונים החמים וכל תיקוני האבטחה שנכללו במהדורת התיקון הקודמת של SQL Server 2012 SP1. אנו ממליצים לשקול להחיל את הגירסה העדכנית ביותר שמכילה את התיקון האחרון שמכיל תיקון חם זה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:
2772858 SQL Server 2012 בונה שהופצו לאחר ש-SQL Server 2012 Service Pack 1 הופץ
עדכון מצטבר 5 עבור SQL Server 2008 R2 SP2
התיקון לבעיה זו הופץ לראשונה בעדכון המצטבר 5. לקבלת מידע נוסף אודות אופן ההשגה של חבילת עדכון מצטברת זו עבור SQL Server 2008 R2 SP 2, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:
2797460 חבילת עדכון מצטבר 5 עבור SQL Server 2008 R2 Service Pack 2הערה מאחר שבונה הגירסאות מצטבר, כל מהדורת תיקון חדשה מכילה את כל התיקונים החמים וכל תיקוני האבטחה שנכללו במהדורת התיקון הקודמת של SQL Server 2008 R2. אנו ממליצים לשקול להחיל את הגירסה העדכנית ביותר שמכילה את התיקון האחרון שמכיל תיקון חם זה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר ב-Microsoft Knowledge Base:
2730301 SQL Server 2008 R2 בונה שהופצו לאחר ש-SQL Server 2008 R2 Service Pack 2 הופץ
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".
פתרון
כדי לעקוף בעיה זו, השתמש בפסוקית הצירוף המלאה ' מיזוג ' במקום בפסוקית join מלאה . לדוגמה, עליך לשנות את השאילתה המוזכרת בסעיף ' מאפייני המילה ' שהשאילתה דומה להודעה הבאה:
SELECT * FROM tablename CROSS APPLY ( SELECT * FROM (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 FULL MERGE JOIN (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 ON s1.nodeName = s2.nodeName ) s
מידע נוסף
לקבלת מידע נוסף אודות אופן השימוש במשפט CROSS APPLY , עבור אל אתר האינטרנט הבא של Microsoft TechNet: