IDENTITY@@ עובד מצויין גם בלי טרנזאקציה, הבעייה היא שהוא לא תמיד יעבוד כמו שאתה רוצה שהוא יעבוד. IDENTITY@@ יחזיר לך את המספור האוטומטי האחרון שהוכנס לטבלה. נכון שהכל עניין של מילישניות, אבל ברגעי עומס יכול להיות שמישהו אחר הכניס נתונים ל DB שבריר שנייה אחריך ואתה תקבל IDENTITY@@ אחר ממה שציפית.
ב MSSQL פתרו את זה מצויין עם ()SCOPE_IDENTITY שמחזירה את ה IDENTITY האחרון שהוכנס באותו scope, כלומר אותו "גולש" – ככה שהבעייה שתוארה קודם לא קיימת.
יש גם ('IDENT_CURRENT('TblName שמחזירה את ה IDENTITY האחרון באותה טבלה, בלי קשר ל scope.
1 תשובות
IDENTITY@@ עובד מצויין גם בלי טרנזאקציה, הבעייה היא שהוא לא תמיד יעבוד כמו שאתה רוצה שהוא יעבוד. IDENTITY@@ יחזיר לך את המספור האוטומטי האחרון שהוכנס לטבלה. נכון שהכל עניין של מילישניות, אבל ברגעי עומס יכול להיות שמישהו אחר הכניס נתונים ל DB שבריר שנייה אחריך ואתה תקבל IDENTITY@@ אחר ממה שציפית.
ב MSSQL פתרו את זה מצויין עם ()SCOPE_IDENTITY שמחזירה את ה IDENTITY האחרון שהוכנס באותו scope, כלומר אותו "גולש" – ככה שהבעייה שתוארה קודם לא קיימת.
יש גם ('IDENT_CURRENT('TblName שמחזירה את ה IDENTITY האחרון באותה טבלה, בלי קשר ל scope.