הבלוג של גרי רשף

28/09/2010

שירשור סקריפטים

Filed under: Uncategorized — תגיות: , , , — גרי רשף @ 20:44

הנה טיפ שימושי: מדובר בפקודת Dos ותיקה ומוכרת, שהפעם נעשה בה שימוש לטובת DBA-ים של SQL Server.
בתהליך הפיתוח אנחנו יוצרים אובייקטים (טבלאות, פרוצדורות..), מכניסים ערכים לטבלאות הגדרות וניהול וכו'. כל פעולה כזו נשמרת בסקריפט נפרד, וכשמעלים גרסה משרת הפיתוח לשרת הבדיקות – יוצרים מהסקריפטים הרלוונטיים סקריפט אחד ארוך שכולל את כולם לפי סדר הגיוני.

נניח שהסקריפט הראשון כלל יצירת טבלה ונשמר בתור C:\Tmp\A.sql

Use tempdb;

Go

Create Table MyTbl(Taarih DateTime);

Go

הסקריפט השני כלל הוספת שורה לטבלה הנ"ל ונשמר בתור C:\Tmp\B.sql

Use tempdb;

Go

Insert MyTbl Select GetDate();

Go

והסקריפט השלישי כלל הוספת עמודת Identity לטבלה ונשמר בתור C:\Tmp\C.sql

Use tempdb;

Go

Alter Table MyTbl Add ID Int Identity Primary Key;

Go

כעת בעזרת פקודת Copy פשוטה שניתן להפעיל על ידי xp_CmdShell ניצור משלושת הקבצים הנ"ל קובץ אחד בשם ABC.sql

Exec xp_CmdShell 'Copy C:\Tmp\A.sql+C:\Tmp\B.sql+C:\Tmp\C.sql C:\Tmp\ABC.sql';

Go

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

Exec xp_CmdShell 'Copy C:\Tmp\*.sql C:\Tmp\ABC.sql';

Go

הערה: כששומרים את הקבצים A.sql, B.sql, C.sql יש לוודא שיש שורה ריקה לאחר הפקודה האחרונה בקובץ; כי אם לא – ה-Go שמסיים את A.txt יהיה מחובר ל-Use שפותח את B.txt וזה יגרום לשגיאה בהרצה.

מודעות פרסומת

תגובה אחת »

  1. עוד דרך

    Exec xp_CmdShell 'Type C:\Tmp\*.sql >> C:\Tmp\ABC.sql';

    תגובה של פלג — 28/09/2010 @ 22:45


RSS feed for comments on this post. TrackBack URI

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

יצירה של אתר חינמי או בלוג ב־WordPress.com.

%d בלוגרים אהבו את זה: