תוכנית העתקת נפח

תוכנית העתקת נפח (BCP) היא למעשה שרות שורת פקודה (Command Line) המאפשר למשתמש להעתיק נתוני שרת SQL לקובץ נתונים או בכוון ההפוך, בפורמט המבוקש ע"י המשתמש. שימוש בשרות זה נעשה לרוב כאשר ברצונך להעביר כמות גדולה של נתונים, מכיוון שזה מאפשר לבצע העלאת טבלאות מבלי להיכנס (Log) לתוכנת השרת . העתקת נפח מעתיקה נתונים לקובץ ביניים על הדיסק ולאחר מכן מייצאת או מייבאת אותם.

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

כיוון שהעתקת נפח מעתיקה נתונים לקובץ של מערכת ההפעלה שניתן בקלות לייצאו לתוך אפליקציה אחרת, ביכולתך גם להשתמש בשרות זה כשלב ביניים לכל אפליקציה אחרת שמסוגלת לקרוא קבצי טקסט, כגון Microsoft Word.

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

על מנת לבצע העתקת נפח מבלי להיכנס לשרת עלייך לעמוד בתנאים הבאים, אחרת תוכנית העתקת הנפח תעלה את תוכנת השרת :

  • אופציית מסד הנתונים Select Into/Bulk Copy  מותחלת לערך True .
  • טבלת היעד אינה מכילה מאורעות אוטומטים (triggers).
  • טבלת היעד אינה משוכפלת.

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

קיימים מספר רב של פרמטרים  אופציונליים בהם ניתן להשתמש בהעתקת נפח. להלן מוצג התחביר. טבלה 8.2 שאחריו מתארת את הפרמטרים השונים.

	  

Bcp [[database_name.]owner.]

table_name {in | out | format}

data_file [-m max_errors] [-f format_file] [-e err_file]

[-F first_row] [-L last_row] [-b batch_size]

[-n] [-c] [-6] [-C code_page]

 

 

הפרמטר תיאור
database_name  שם מסד הנתונים
owner שם הבעלים
table_name שם הטבלה להעתקה
In | out | format כוון ההעתקה :מקובץ, לקובץ ופורמט הקובץ בהתאם למתגיםn, -c, –, 6-
data_file המסלול המלא של קובץ מערכת ההפעלה
-m max_errors המספר המקסימלי של שגיאות שמותר לתהליך ההעתקה
-f format_file יצירת קובץ פורמט
-e err_file יצירת קובץ שגיאות
-F first_row מציין את השורה הראשונה להעתקה
-L last_row  מציין את השורה האחרונה להעתקה
-b batch_size מאתחל את הגודל של קובץ האצווה
-n מציין פורמט טבעי (native)
-c מציין פורמט תווים (character), \n יציין סוף שורה ו-nchar יהיה טיפוס האחסון
-6 שימוש בטיפוסי התווים של גרסאות קודמות שלSQL Server (6/ 6.5)
-C code_page מציין את עמוד הקוד של הנתונים בקובץ הנתונים
טבלה 8.2

 

  חזרה לתחילת הפרק


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