שלח תשובה

זירת השאלות

419
צפיות
5
תשובות

משהו מוזר בהוספת נתונים בSQL SERVER

,‏ 16 בפברואר, 2004

כאשר אני רושם מילה מסויימת שאני רוצה להכניס לבסיס הנתונים של SQL SERVER זה משום מה מכניס לי את המילה ללא בעיה אבל מצרץ גם הרבה מאוד רווחים אחרי מילה.
לדוגמא אם אני מכניס מילה "רכב" אז לבסיס הנתונים יוכנס מילה

"רכב " אם הרבה רווחים אחרי מילה רכב

למה זה ככה וממה זה קורה ?
זאת הפעם הראשונה שקורה לי את זה והכל נכון בשאילתא.

תודה מראש.

תגיות:

5 תשובות

  1. כי הגדרת את השדה כ-char
    במקום varchar.

    קצת על ההבדלים בין השדות:

    char – כשאתה מגדיר אותו, תופס בדיוק את המקום שהגדרת לו. אם תגדיר אותו Char(15) הוא יתפוס בדיוק 15 בייט. אתה מה שאתה לא מכניס – הוא משלים ברווחים, לכן len ייתן לך 15 גם אם הכנסת רק 3 אותיות, כלומר – יש לו גודל קבוע.
    בסוג השדה הזה תשתמש כשהמחרוזות של הן תמיד באורך יחסית זהה.

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

    text– לא זוכרת בדיוק כמה הוא יכול להכיל, אבל הוא תופס המון מקום, והוא מאוד לא יעיל. אם הטקסט של הוא עד 8000 תווים – רצוי להשתמש ב-varchar. יש כאלו שטוענים גם שיעיל יותר לחלק טקסט גדול לשני שדות varchar מאשר להשתמש בשדה.

    ntext, nchar ו-nvarchar הם אותו דבר, רק יוניקוד, כך שהם יכולים להכיל חצי מכמות התווים של האחים הגדולים שלהם.

  2. mrmistory הגיב:

    איפה ניתן לראות את כל ההסברים….
    על שמות השדות בעברית בלבד ?
    תודה.

  3. ניר טייב הגיב:

    בספר
    אם זה עוזר או בריפרנס ב-MSDN (נראה לי)

שלח תשובה