none
חוסר יכולת להוסיף טבלה ל DB דרך server explorer RRS feed

  • שאלה

  • שלום

    הוספתי קובץ מסד נתונים (mdf) לתקיה App_Data. כאשר אני מציג את מסד הנתונים בחלון server explorer, תחת Data Conections ולוחץ קליק ימני על Tables, אין לי שום אפשרות להוסיף טבלה. יש למישהו רעיון למה?

    אגב אם אני משתמש במסד נתונים קומפקט (sdf) כן מופיעות לי האפשרויות להוסיף ולערוך טבלאות.

    פרטים:

    visual studio 2012 ultimate

    sqlexpress 2012 server

    windows 8

    ASP.NET WebSite

    תודה


    בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.

    שבת 19 ינואר 2013 23:42

תשובות

  • טוב הגיע הזמן להמשיך :-)

    נסה להתחבר דרך SSMS אל ה INSTANCE שנוצר על ידי ה VS

    1. אפשרות ראשונה - אתה עובד עם sqlexpress ולכן נוצר לך דינאמית USER INSTANCE

    על מנת למצוא את ה INSTANCE תריץ את השאילתה הבאה:

    SELECT owning_principal_name, instance_pipe_name, heart_beat FROM sys.dm_os_child_instances 

    תמצא את ה INSTANCE של המשתמש שמריץ את ה VS (המפתח שלכם)

    אם ה INSTANCE במצב חי תוכל להתחבר אליו ישירות מ SSMS כמו שמתחברים לכל INSTANCE אחר (השם של ה INSTANCE זה מה שתקבל בעמודה instance_pipe_name)

    אם הוא מת אז תוכל להעזר בתוכנת SSEUtil על מנת להחיות אותו או לנות להפעיל את הפרוייקט שירום לו לחיות.

    2. אם אתה עובד עם LocalDb אז אתה יכול להיכנס ישירות ל INSTANCE שלו על ידי רישום בשם ה INSTACE את מה שיש לך בשרשרת ההתחברות (זה לא המקרה שלך לפי הקוד שלך)

    הבנתי שניסת אבל בדוק אם זה מה שרשמת בבקשה

    connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Mvc4Application1-20130120083923;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Mvc4Application1-20130120083923.mdf"

    גם כאן נוכל להתחבר ישירות מה SSM על ידי כניסה ל INSTANCE הבא(שים לב שסדר האותיות התחלף בפורום אבל אתה יכול להעתיק מהשרשרת): (LocalDb)\v11.0

    אחרי שתיכנס ל INSTANCE המתאים אתה אמור למצוא את מסד הנתונים ואז תוכל לבדוק אם ניתן לבצע בו שינויים ישירות דרך ה SSMS

    האם הצלחת להיכנס ל INSTANCE המתאים ולמצוא את מסד הנתונים? האם הצלחת דרך ה SSMS ליצור טבלה?


    signature

    • סומן כתשובה על-ידי Eran Sharvit יום רביעי 23 ינואר 2013 11:03
    יום ראשון 20 ינואר 2013 18:10
    מנחה דיון

כל התגובות

  • 1. יש לך גם את קובץ הלוג LDF ?

    שים אותו ביחד עם ה MDF (הם ביחד מהווים מסד נתונים אחד)

    2. אתה אומר שאתה מגיע למצב שרואים את הטבלאות במסד הנתונים? ז"א התחברות אל מסד הנתונים מצליחה וודאות?

    * בדרך כלל הבעיה היא ביצירת החיבור ולא בעבודה לאחר שהחיבור הצליח. בכל מקרה כדאי שתצרף לנו את שרשרת ההתבחרות שלך

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


    signature

    יום ראשון 20 ינואר 2013 06:43
    מנחה דיון
  • שלום פיתוח

    1. כמובן שיש לי את קובץ הלוג.

    2. ההתחברות מצליחה. כאשר אני לוחץ קליק ימני על שם מסד הנתונים בחלון server explorer ואז modfy connection , שם אני לוחץ על test connection הבדיקה מחזירה תקין. ובכל זאת ב table node קליק ימני מחזיר רק ריפרש ופרופרטיז ולא add table.

    ה connection string:

     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DBname.mdf;Integrated Security=True;User Instance=true" providerName="System.Data.SqlClient"


    בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.

    יום ראשון 20 ינואר 2013 11:27
  • אולי יעלו לי עוד רעיונות בערב או בהמשך אבל כרגע הדבר היחיד שקופץ לי לפי האפיון שהצגת זה שיש בעייה פשוטה של הרשאות. למשל משתמש איתו אתה נכנס אין לו הרשאות יצירת טבלאות, הוא כן יכול להתחבר כי הוא מוגדר כמשתמש מורשה של דוט נט.

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

    אני מקווה שזה יההי הכיוון כי כרגע לא קופץ לי משהו אחר בראש בלי להיות ליד המחשב :-)

    תוספת: עוד רעיון שיכול לעזור לנטר את הבעיה אבל הוא מורכב יותר ואין לי כרגע את הקוד בראש בע"פ אז אולי גוגל יעזור לך או כשאני אוכל להביא את זה:

    רקע: כשאתה עובד עם קובץ בצורה דינאמית ב VS בעצם בשרת נוצר INSTANCE דינאמי. אין למעשה עבודה בשרת SQL ללא עבודה בINSTANCE מסויים אבל אם תבדוק בשרת איזה מסדי נתונים יש לא תמצא את אלו שלא הוגדרו בו כמו אלו שיש לך בפרוייקטים השונים כקובץ. כאמור אלו כן נרשמים (ATTACH) בשרת באופן דינאמי ב INSTANCE זמני.

    הרעיון: למצוא את ה INSTANCE שנוצר (אמרת שההתחברות הצליחה ולכן בודאות נוצר כזה) דרך משתמש האדמין הראשי בעזרת ה SSMS ולבדוק מה הוא רואה ומה קורה...

    * זה מה שאני הייתי בטח מבצע בשלב זה


    signature

    יום ראשון 20 ינואר 2013 12:48
    מנחה דיון
  • תודה.

    אבדוק.

    אגב כתבתי בשאלה שכאשר אני עובד עם sql compact הכל תקין. שניהם משתמשים באותו מנוע של sql server לא?

    זה נראה לי יותר בכיוון של בעיה ב VS עצמו. אגב גם ליצור MDF דרך ה localDB שמוגדר כשרת הדיפולטי ב VS נכשל (לא מצליח כלל למצוא את ה server, אני מקבל או error:50 או error:26) שיניתי את יעד השרת ל sqlexpress שמותקן לי בנוסף ורק אז אני מצליח ליצור קובץ , MDF אבל עם הבעיה הנ"ל.

    שוב תודה.


    בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.

    יום ראשון 20 ינואר 2013 13:01
  • SDF משתמש במנוע של SQL CE (יש לו שם חדש יותר בגרסה הנוכחית שאני לא זוכר) ולא במנוע של  SQLEXPRESS (במקור SQL CE נועד לאפליקציות טלפוניות אבל דווקא גירסה אחרונה אינה נתמכת לזכרוני בטלפונים)

    בעבר ב VS 2010 היה צריך לבצע התקנה של תוסף כלשהו על מנת לעבוד איתם גם אם היה כבר מותקן SQLEXPRESS או גרסה מלאה שלו. ב VS 2012 אני לא זוכר אם התקנתי משהו או שזה כבר היה חלק מה VS.

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


    signature

    יום ראשון 20 ינואר 2013 13:34
    מנחה דיון
  • טוב הגיע הזמן להמשיך :-)

    נסה להתחבר דרך SSMS אל ה INSTANCE שנוצר על ידי ה VS

    1. אפשרות ראשונה - אתה עובד עם sqlexpress ולכן נוצר לך דינאמית USER INSTANCE

    על מנת למצוא את ה INSTANCE תריץ את השאילתה הבאה:

    SELECT owning_principal_name, instance_pipe_name, heart_beat FROM sys.dm_os_child_instances 

    תמצא את ה INSTANCE של המשתמש שמריץ את ה VS (המפתח שלכם)

    אם ה INSTANCE במצב חי תוכל להתחבר אליו ישירות מ SSMS כמו שמתחברים לכל INSTANCE אחר (השם של ה INSTANCE זה מה שתקבל בעמודה instance_pipe_name)

    אם הוא מת אז תוכל להעזר בתוכנת SSEUtil על מנת להחיות אותו או לנות להפעיל את הפרוייקט שירום לו לחיות.

    2. אם אתה עובד עם LocalDb אז אתה יכול להיכנס ישירות ל INSTANCE שלו על ידי רישום בשם ה INSTACE את מה שיש לך בשרשרת ההתחברות (זה לא המקרה שלך לפי הקוד שלך)

    הבנתי שניסת אבל בדוק אם זה מה שרשמת בבקשה

    connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Mvc4Application1-20130120083923;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Mvc4Application1-20130120083923.mdf"

    גם כאן נוכל להתחבר ישירות מה SSM על ידי כניסה ל INSTANCE הבא(שים לב שסדר האותיות התחלף בפורום אבל אתה יכול להעתיק מהשרשרת): (LocalDb)\v11.0

    אחרי שתיכנס ל INSTANCE המתאים אתה אמור למצוא את מסד הנתונים ואז תוכל לבדוק אם ניתן לבצע בו שינויים ישירות דרך ה SSMS

    האם הצלחת להיכנס ל INSTANCE המתאים ולמצוא את מסד הנתונים? האם הצלחת דרך ה SSMS ליצור טבלה?


    signature

    • סומן כתשובה על-ידי Eran Sharvit יום רביעי 23 ינואר 2013 11:03
    יום ראשון 20 ינואר 2013 18:10
    מנחה דיון
  • שלום ושוב תודה

    הצלחתי להתחבר ל Instance דרך ה SSMS ושם אני כן מצליח ליצור טבלאות.


    בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.

    יום שני 21 ינואר 2013 11:25
  • טוב זה אומר שמבחינת מסד הנתונים + השרת SQLEXPRESS הכל תקין ונשאר לחשוב על החלק של הפרוייקט/VS (בפרט הגדרות אצלך) או הקשר בין הגורמים השונים.

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

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

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

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


    signature

    יום שני 21 ינואר 2013 16:25
    מנחה דיון