דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. MDF גיבוי נתונים

MDF גיבוי נתונים

מתוזמן נעוץ נעול הועבר ארכיון code613m
38 פוסטים 6 כותבים 2.6k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #21

    @דוד ל.ט.

    כן.
    שאילתה די פשוטה.

    @ClickOne

    פשוט תחליף את שם הטבלה

    יש כמה דברים שמפריעים לכאורא:

    1. העמודה של ה ID היא אוטומטית כך שאי אפשר לתת לה ערך אלא רק המסד נותן ערך
    2. יש קשרי גומלין בחלק מהשדות
      וכל זה בטבלה המקורית אבל הטבלה שבגיבוי היא ללא קשרים וללא ערכים אוטומטיים, אז כאשר אני מנסה להכניס את של זה בזה אני מקבל שגיאות.

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

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

    גם עיינתי כאןולא ראיתי משהו שיכול לעזור.

    פורסם במקור בפורום CODE613 ב22/01/2014 16:03 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #22

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

      בקשר לקישור שהבאת, יש שמה חידושים שיכולים לעזור מאוד לזה : http://stackoverflow.com/a/9241260/1271037

      פורסם במקור בפורום CODE613 ב22/01/2014 17:04 (+02:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      1
      • רחמיםר מנותק
        רחמיםר מנותק
        רחמים מורחק
        כתב ב נערך לאחרונה על ידי
        #23

        טוב, אז נלך במהלך ששחזור הוא יהיה מחיקת הטבלה המקורית ושינוי שם לטבלת הגיבוי, כעת אין לי בעיה עם ה ID וגם לא עם השורות יתרות או חסרות,

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

        2. ואם בשביל זה אני צריך לשנות את ההגדרות של הקשרי גומלין בכל הטבלאות המקשרות לטבלה המקורית, איך אני אעשה את זה, איך אדע באלו טבלאות מדובר ואיזה הגדרה צריך לשנות בקשר הגומלין?

        3. ואיך בכלל משנים הגדרות של קשרי גומלין בשפת SQL?

        4. ואחר שינוי השם של טבלת הגיבוי יהיה צריך גם להחזיר את ההגדרות של הקשרי גומלין בכל הטבלאות המקושורת.

        תודה לכולם!

        פורסם במקור בפורום CODE613 ב22/01/2014 18:30 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • רחמיםר מנותק
          רחמיםר מנותק
          רחמים מורחק
          כתב ב נערך לאחרונה על ידי
          #24

          אז מצאתי את השאילתא הבאה כדי לקבל את כל הקשרי גומלין בהם הטבלה המקורית היא טבלת האב:

          SELECT Main.TABLE_NAME AS ParentTable, Child.TABLE_NAME AS ChildTableName, Cons.COLUMN_NAME AS PKey_Column, RefCons.COLUMN_NAME AS ReferencingColumnName, 
                      rc.CONSTRAINT_NAME AS FK_NAME
          FROM  INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE AS Child INNER JOIN
                      INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS rc ON rc.CONSTRAINT_SCHEMA = Child.CONSTRAINT_SCHEMA AND 
                      rc.CONSTRAINT_NAME = Child.CONSTRAINT_NAME INNER JOIN
                      INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE AS Main ON Main.CONSTRAINT_SCHEMA = rc.UNIQUE_CONSTRAINT_SCHEMA AND 
                      Main.CONSTRAINT_NAME = rc.UNIQUE_CONSTRAINT_NAME INNER JOIN
                      INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS RefCons ON RefCons.CONSTRAINT_SCHEMA = Child.CONSTRAINT_SCHEMA AND 
                      RefCons.CONSTRAINT_NAME = Child.CONSTRAINT_NAME INNER JOIN
                      INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS Cons ON Cons.CONSTRAINT_SCHEMA = Main.CONSTRAINT_SCHEMA AND 
                      Cons.CONSTRAINT_NAME = Main.CONSTRAINT_NAME
          WHERE (Main.TABLE_NAME = N'שם הטבלה המקורית')
          

          עריכה:
          שיפצתי משמעותית את השאילתא.

          פורסם במקור בפורום CODE613 ב22/01/2014 18:46 (+02:00)

          תגובה 1 תגובה אחרונה
          0
          • רחמיםר מנותק
            רחמיםר מנותק
            רחמים מורחק
            כתב ב נערך לאחרונה על ידי
            #25

            לשינוי שם מצאתי את הקוד הבא:

            sp_rename old_table_name, new_table_name
            

            פורסם במקור בפורום CODE613 ב22/01/2014 18:47 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #26

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

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

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

              פורסם במקור בפורום CODE613 ב22/01/2014 19:00 (+02:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1
              • רחמיםר מנותק
                רחמיםר מנותק
                רחמים מורחק
                כתב ב נערך לאחרונה על ידי
                #27

                תודה דוד אתה אלוף :smile:

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

                ALTER TABLE Person.ContactBackup
                ADD CONSTRAINT FK_ContactBacup_Contact FOREIGN KEY (ContactID)
                    REFERENCES Person.Person (BusinessEntityID) ;
                

                פורסם במקור בפורום CODE613 ב22/01/2014 19:36 (+02:00)

                תגובה 1 תגובה אחרונה
                0
                • רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים מורחק
                  כתב ב נערך לאחרונה על ידי
                  #28

                  שלב ב'

                  אחרי שאנו יודעים איך יוצרים קשר גומלין אנו יכולים להתקדם לאיך מוחקים קשר קיים:

                  ALTER TABLE Person.ContactBackup
                  DROP CONSTRAINT FK_ContactBacup_Contact ;
                  

                  פורסם במקור בפורום CODE613 ב22/01/2014 19:39 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • רחמיםר מנותק
                    רחמיםר מנותק
                    רחמים מורחק
                    כתב ב נערך לאחרונה על ידי
                    #29

                    שלב ג'
                    אחרי שאנו יודעים מה הם הקשרי הגומלין הקיימים ע''י השאילתא הארוכה הנ''ל, אנו יכולים למחוק את כל הקשרי גומלין השייכים לטבלה המקורית וכנ''ל בשלב ב'
                    אחר שאין קשרי גומלין אנו יכולים למחוק את הטבלה המקורית עצמה כך:

                    DROP TABLE [שם הטבלה]
                    

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

                    שלב ה'
                    התגובות שלכם בבקשה...

                    פורסם במקור בפורום CODE613 ב22/01/2014 19:46 (+02:00)

                    תגובה 1 תגובה אחרונה
                    0
                    • רחמיםר מנותק
                      רחמיםר מנותק
                      רחמים מורחק
                      כתב ב נערך לאחרונה על ידי
                      #30

                      @שמואל

                      אולי אפשר שהתוכנה פשוט תעתיק את הקובץ כל ערב
                      ובמקרה הצורך הוא יוחלף

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

                      פורסם במקור בפורום CODE613 ב26/01/2014 09:59 (+02:00)

                      תגובה 1 תגובה אחרונה
                      0
                      • א מנותק
                        א מנותק
                        ארכיטקט
                        כתב ב נערך לאחרונה על ידי
                        #31

                        @רחמים

                        @שמואל
                        אולי אפשר שהתוכנה פשוט תעתיק את הקובץ כל ערב

                        ובמקרה הצורך הוא יוחלף

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

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

                        פורסם במקור בפורום CODE613 ב26/01/2014 10:16 (+02:00)

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

                        תגובה 1 תגובה אחרונה
                        0
                        • clickoneC מנותק
                          clickoneC מנותק
                          clickone
                          כתב ב נערך לאחרונה על ידי
                          #32

                          @ארכיטקט

                          @רחמים
                          @שמואל
                          אולי אפשר שהתוכנה פשוט תעתיק את הקובץ כל ערב

                          ובמקרה הצורך הוא יוחלף

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

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

                          תנסה להעתיק עם פונקציית API.
                          API מעתיק אפילו שהקובץ תפוס.

                          פורסם במקור בפורום CODE613 ב26/01/2014 11:39 (+02:00)

                          אין טסט כמו פרודקשן.

                          המייל שלי urivpn@gmail.com

                          תגובה 1 תגובה אחרונה
                          0
                          • א מנותק
                            א מנותק
                            ארכיטקט
                            כתב ב נערך לאחרונה על ידי
                            #33

                            @ClickOne

                            תנסה להעתיק עם פונקציית API.
                            API מעתיק אפילו שהקובץ תפוס.

                            זה לא עובד אפילו בוינדווס עצמו העתק הדבק בלי API, ולא מצינו שכוחות של API עדיף מכוח האינטרפייס, זולתי בדוס......

                            פורסם במקור בפורום CODE613 ב26/01/2014 12:32 (+02:00)

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

                            תגובה 1 תגובה אחרונה
                            0
                            • dovidD מחובר
                              dovidD מחובר
                              dovid ניהול
                              כתב ב נערך לאחרונה על ידי
                              #34

                              @ארכיטקט

                              @ClickOne
                              תנסה להעתיק עם פונקציית API.

                              API מעתיק אפילו שהקובץ תפוס.

                              זה לא עובד אפילו בוינדווס עצמו העתק הדבק בלי API, ולא מצינו שכוחות של API עדיף מכוח האינטרפייס, זולתי בדוס......

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

                              פורסם במקור בפורום CODE613 ב26/01/2014 13:19 (+02:00)

                              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                              בכל נושא אפשר ליצור קשר dovid@tchumim.com

                              תגובה 1 תגובה אחרונה
                              0
                              • clickoneC מנותק
                                clickoneC מנותק
                                clickone
                                כתב ב נערך לאחרונה על ידי
                                #35

                                @דוד ל.ט.

                                @ארכיטקט
                                @ClickOne
                                תנסה להעתיק עם פונקציית API.

                                API מעתיק אפילו שהקובץ תפוס.

                                זה לא עובד אפילו בוינדווס עצמו העתק הדבק בלי API, ולא מצינו שכוחות של API עדיף מכוח האינטרפייס, זולתי בדוס......

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

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

                                פורסם במקור בפורום CODE613 ב26/01/2014 13:34 (+02:00)

                                אין טסט כמו פרודקשן.

                                המייל שלי urivpn@gmail.com

                                תגובה 1 תגובה אחרונה
                                0
                                • רחמיםר מנותק
                                  רחמיםר מנותק
                                  רחמים מורחק
                                  כתב ב נערך לאחרונה על ידי
                                  #36

                                  @ClickOne

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

                                  When SQL services are running the SQLserver.exe process holds all the mdf/ldf files and will not let the users copy those files. Either perform any of the below

                                  Detach the database
                                  Take the database offline
                                  Shutdown the SQL services and copy mdf / ldf files.

                                  מקור

                                  פורסם במקור בפורום CODE613 ב26/01/2014 13:38 (+02:00)

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • dovidD מחובר
                                    dovidD מחובר
                                    dovid ניהול
                                    כתב ב נערך לאחרונה על ידי
                                    #37

                                    Click, אני לא אמרתי שהם חושבים ומבינים למה משתמשים ובמה, אלא פשוט עשו פוקנציה בווינדוס ששימוש (ReadWrite) תמנע העתקה, כי העתקה כזו איננה רצוייה.

                                    פורסם במקור בפורום CODE613 ב26/01/2014 13:47 (+02:00)

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • clickoneC מנותק
                                      clickoneC מנותק
                                      clickone
                                      כתב ב נערך לאחרונה על ידי
                                      #38

                                      עדיין אני צודק. (וגם דוד ל.ט. :lol: )
                                      הפרוסס פשוט תופס אותו... לא יותר מזה.

                                      פורסם במקור בפורום CODE613 ב26/01/2014 13:48 (+02:00)

                                      אין טסט כמו פרודקשן.

                                      המייל שלי urivpn@gmail.com

                                      תגובה 1 תגובה אחרונה
                                      0

                                      • 1
                                      • 2
                                      בא תתחבר לדף היומי!
                                      • התחברות

                                      • אין לך חשבון עדיין? הרשמה

                                      • התחברו או הירשמו כדי לחפש.
                                      • פוסט ראשון
                                        פוסט אחרון
                                      0
                                      • דף הבית
                                      • קטגוריות
                                      • פוסטים אחרונים
                                      • משתמשים
                                      • חיפוש
                                      • חוקי הפורום