יבוא טבלה מ-Access

גרי רשף

New member
יבוא טבלה מ-Access

איזו פקודה ב- T-Sql מייבאת טבלה מ-Access ל-Sql Server (או לחילופין- מייבאת נתונים לתוך טבלה קיימת)?
 

eli_leiba

New member
openrowset

קרא על OPENROWSET פונקציה זו פותחת connection שחי בזמן השאילתא מ sql server למקור מידע אחר (נניח access) הפרמטרים הם provider string,user id,password ו שאילתא/טבלה אז אתה יכול להשתמש ב insert into sql_server table (.......) select openrowset או לחילופין , להגדיר את ה access כ linked server בתוך ה sql server ולהתייחס אליו כשרת בשרת לפי הקונבנציה server.database.owner.table
 

גרי רשף

New member
תודה אלי..

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

גרי רשף

New member
תודה תודה, אבל טרם סיימנו..

ניסיתי את פקודת ה-OpenRowSet. כאשר קובץ ה-Access הותקן על השרת בו מותקן ה-Sql Server זה עבד, אבל כאשר קובץ ה-Access הותקן על הדיסק המקומי של תחנת העבודה שלי- זה לא עבד. אני מבין שהשרת לא ´רואה´ את הדיסק המקומי שלי, ובכל מקרה מה שקובע זה ההרשאות של השרת ולא ההרשאות שלי (למשל: גם אם לי יש הרשאות לשרת A ולשרת B, עדיין שרת A לא יוכל לקרוא נתונים משרת B מבלי שיוגדר כשרת מקושר עבורו). מה שלא ברור לי זה מדוע ב-Books on line ניתנו שתי דוגמאות שונות בהן ה-Sql Server קורא מקובץ mdb (אקסס) על הדיסק המקומי. האם הם הניחו שה-Sql Server הותקן מקומית על תחנת העבודה?
 

eli_leiba

New member
כן הכוונה שגם access יותקן בשרת

נכון אמרת, מה שקובע זה הרשאות השרת ולא שלך ולכן ה access וקובץ ה mdb צריכים להיות נגישים לשרת ה SQL ב bol הניחו שאתה עובד על שרת ה sql ו C שלו יש את ה access
 

אילן די

New member
אפשר גם להגדיר את מסד הנתונים

של אקסס כ- linked server בשרת ה- SQL ולגשת לטבלאות כמו שניגשים לטבלאות ב- SQL SERVER. ע"ע sp_addlinkedserver
 

גרי רשף

New member
תודה על העזרה וסיכום למי שלא הצליח

תודה על העזרה, ניסיתי את שתי הדרכים והצלחתי. עבור מי שלר הצליח ולמען הדורות הבאים אני מצרף צילום של המסך בו ביצעתי Linked Server לקובץ ה-Access. במקרה זה ניתן לשלוף את הנתונים על ידי הפקודה Select * From REVCO_MDB...Nisyonot לחילופין ניתן לפנות ישירות לקובץ בעזרת פקודת OpenRowSet: SELECT * FROM OPENROWSET(´Microsoft.Jet.OLEDB.4.0´,´\\Crnt42\Apps$\db2.mdb´;´Admin´;´´,Nisyonot)
 

גרי רשף

New member
יא אינטרנט, מה עשיתי לך רע?

כמובן שפקודת ה-OpenRowSet התחרבשה בגלל האנגלית (מתי כבר יפתחו גרסה עם פקודות SQL בעברית: "בחר א.* מתוך טבלה_1 כמו א כאשר א.שם=´גרי´ מיין לפי תעודת_זהות").. בכל מקרה: העתיקו את הפקודה כמו שהיא ל-Query Analyzer, החליפו את התגים ` בתגים ´ שנו את השמות של הקבצים לפי הצורך ואם זה לא רץ אז תשאלו את אלי מה לעשות.
 

אילן די

New member
רעיון חביב ../images/Emo13.gif

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