SQL TRUNCATE

לעתים, אנו צריכים למחוק במהירות את כל הנתונים בטבלה. נוכל לעשות זאת באמצעות הפקודה TRUNCATE. אמנם אנו יכולים למחוק נתונים גם באמצעות משפטי DELETE FROM אולם במקרה זה מספר הטרנזקציות מול בסיס הנתונים יהיה גדול ולכן לא מומלץ למחוק באמצעות פקודה זו כמות גדולה של נתונים.

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

המבנה הכללי של משפט SQL Truncate יהיה:

Truncate TABLE <שם טבלה>;

דוגמה למחיקת כל הרשומות בטבלה באמצעות Truncate:

בדוגמה הבאה נרצה למחוק את כל הרשומות בטבלת Products, אך נרצה לשמר את הטבלה עצמה. הקוד שלנו במקרה זה ייראה כך:

Truncate TABLE Products;

זה המקום להעיר שפקודת TRUNCATE אינה מפעילה טריגרים בטבלה משום שהיא אינה מייצרת טרנזקציות. במקרה שנרצה בהפעלת טריגר כתוצאה מהמחיקה אזי מומלץ להשתמש בפקודת DELETE FROM. פקודת DELETE FROM ניגשת לטבלה ומוחקת שורה אחר שורה ובכך מייצרת טריגרים.

שימור מבנה הטבלה, איפוס המונים האוטומטיים

כאמור מחיקה שנעשתה באמצעות פקודת Truncate תשמור על מבנה הטבלה וכל ההגדרות שלה כגון מפתחות, אינדקסים, מגבלות וכדומה. יחד עם זאת המחיקה תגרום לאיפוס Identity Columns (מונים אוטומטיים) ומחזירה אותם למצב הגרעין שלהם.


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש