שירשור ערכים מטבלה

יום שני, אוגוסט 2, 2010

נפתח בחידה בעל פה: מה יהיה הפלט של הסקריפט הקצר הבא? Declare @S Varchar(Max); Select @S=name From sys.sysobjects; Print @S; נו טוב- הרוב בוודאי ממשיכים הלאה לראות מה התשובה בלי לנסות לחשוב, ומבין מעט הצדיקים שעוצרים לרגע ומנסים את כוחם – חלק אולי כבר יודעים את התשובה, חלק מבינים שיש כאן מלכודת ולא שאלת תם, ואולי יש צדיק אחד שנופל בפח הלא מוצלח.. לעצם העניין – אתם אמורים לטעות ולטעון שהתוכנית תיכשל מכיוון שלתוך משתנה ניתן להכניס ערך אחד ולא עמודה שלמה, עובדה שפקודה כמו (Select @S=(Select name From sys.sysobjects נכשלת מכיוון ששאילתת...

קליטת קבצי טקסט לטבלה

יום שלישי, יוני 29, 2010

נתחיל מהמקרה הפשוט ביותר: נתון קובץ טקסט עם שמות עובדים אותם יש לקלוט, ונשמור אותו בתור C:\Tmp\TxtFile1.txt: Avi Batya Carmel Dana ניצור טבלה מתאימה: Use tempdb; Go If Object_Id('T_Tmp1') Is Not Null Drop Table T_Tmp1; Go Create Table T_Tmp1(Txt Varchar(Max)); Go ונייבא את הנתונים מהקובץ לתוכה: Bulk Insert T_Tmp1 From 'C:\Tmp\TxtFile1.txt'; Go מה קורה אם בטבלה יש עוד עמודות מלבד זו שלתוכה יש לייבא את הנתונים? ניצור טבלה שכוללת מלבד עמודה Txt כנ"ל גם עמודת מספור אוטומטי ועמודת תאריך (עם תאריך שוטף כברירת מחדל) שמתמלאות מאליהן: If Object_Id('T_Tmp2') Is Not Null Drop Table T_Tmp2; Go Create Table T_Tmp2(Mone Int Identity, Txt Varchar(Max), ...