Sign in with Microsoft
Sign in or create an account.

מבוא

עמודה חותמת זמן של טבלה יכול לשמש כדי לקבוע אם כל ערך בשורה טבלה השתנה מאז הפעם האחרונה שבטבלה נקראה. מאמר זה מתאר דרך להשתמש עמודה חותמת זמן של טבלה לפקד שיתוף פעולה אופטימי ב- Microsoft SQL Server 2005.

מידע נוסף

באפשרותך להוסיף עמודה של חותמת זמן לטבלה כדי לסייע בשמירה על התקינות של מסד הנתונים כאשר משתמשים מרובים אתה מעדכן שורות בו-זמנית. ייתכן גם שתרצה לדעת כמה שורות אילו שורות עודכנו ללא בבדיקה חוזרת של הטבלה.

לדוגמה, נניח שיצרת טבלה בשם MyTest. אכלס חלק מהנתונים בטבלה על-ידי הפעלת את המשפטים הבאים של Transact-SQL.

CREATE TABLE MyTest (myKey int PRIMARY KEY, myValue int, TS timestamp)
GO
INSERT INTO MyTest (myKey, myValue) VALUES (1, 0)
GO
INSERT INTO MyTest (mykey, myValue) VALUES (2, 0)
GO

לאחר מכן באפשרותך להשתמש במשפטי Transact-SQL הבאה של דוגמה להטמעת שיתוף פעולה אופטימי בקרה על הטבלה MyTest במהלך העדכון.

DECLARE @t TABLE (myKey int)
UPDATE MyTest SET myValue = 2
OUTPUT inserted.myKey into @t(myKey)
WHERE myKey = 1 and TS = TSValueIF (SELECT COUNT(*) FROM @t) = 0
BEGIN
RAISERROR ('error changing row with myKey = %d',
16, -- Severity.
1, -- State.
1) -- myKey that was changed
END

הערה TSValue הוא ערך עמודה חותמת הזמן עבור השורה המציין בפעם האחרונה שבה אתה קורא את השורה. יש להחליף ערך זה על-ידי הערך בפועל חותמת זמן . 0x00000000000007D3 הוא דוגמה לערך בפועל חותמת זמן .

באפשרותך גם להעביר במשפטי Transact-SQL לדוגמה לתוך טרנזקציה. על-ידי ביצוע שאילתה על המשתנה @t בטווח של התנועה, באפשרותך לאחזר את עמודה מעודכנת myKey של הטבלה ללא בבדיקה חוזרת של הטבלה MyTest .

לקבלת מידע נוסף אודות סוג עמודה חותמת זמן , בקר באתר האינטרנט הבא של Microsoft מפתח רשת (MSDN):

http://msdn2.microsoft.com/en-us/library/ms182776.aspx

זקוק לעזרה נוספת?

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Microsoft insider

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלכם?

תודה על המשוב!

×