SQL - החלפת שם טבלה בלבד, לשם טבלה עם מסד הנתונים
-
האם יש פונקציה / כלי בSQL
שמאפשר החלפה של כל שמות הטבלאות בשאילתה
משם הטבלה בלבד
לשם טבלה עם מסד הנתוניםדוגמא לקריאה לשם הטבלה ישירות
SELECT * FROM Table_name
והתוצאה הרצויה היא:
SELECT * FROM [Name_Data_Base].[dbo].[Table_name]
במושכל ראשון חשבתי שאולי ניתן לבצע שליפה של כל שמות הטבלאות במסד,
ואז לבצע עליהם חיפוש והחלפהועדיין עומק שאלתי היא:
כאשר עומדים עם העכבר על שם העמודה/טבלה מופיע 'טול-טיפ' עם מידע מה סוג האובייקט, כך שהSQL יודע ומזהה את מקור הנתון
ולכן האם ישנו אפשרות רשמית מסודרת לבצע את הטרנספורמציה -
@mekev אמר בSQL - החלפת שם טבלה בלבד, לשם טבלה עם מסד הנתונים:
פונקציה / כלי בSQL
קצת לא ברור מה אתה מתכוון במילת "SQL". אתה מתכוון לשפה (T-SQL)? או למנוע SQL SERVER? או ל-SSMS?
(אני מבין מתוך הקוד שמדובר ב-SQL SERVER ולא מנוע אחר...)
מלשונך כאן:
כאשר עומדים עם העכבר על שם העמודה/טבלה מופיע 'טול-טיפ' עם מידע מה סוג האובייקט, כך שהSQL יודע ומזהה את מקור הנתון
משמע לי שאתה מדבר על עורך הקוד SSMS או VS.
(איך באמת עורך הקוד יודע את הנתיב המלא? כנראה שיש לו ידיעה מאיפשהו באיזה מסד מדובר, ואז עושה חיפוש פשוט לפי הסדר, קודם בטבלאות של הסכמה הדיפולטי של המשתמש ואז ב-dbo, בדיוק כמו הכללים של המנוע כאשר הוא מתרגם שם של טבלה לנתיבו המלא)אבל מריש דבריך (שאולי ניתן לבצע שליפה של כל שמות הטבלאות במסד,ואז לבצע עליהם חיפוש והחלפה) משמע קצת שאתה מתכוון לפונקציה בקוד שיעשה את ההחלפה, כלומר יקבל את השאילתה כמחרוזת ויפרסר אותו להבין איפה שמות האובייקטים ויחליף אותם בנתיבם המלא.
או שאתה עדיין מתכוון לעשות את זה בצורה ידנית?כך שלא ברור לי לגמרי מה הסיטואציה
בכל מקרה, כדי שלא להשאיר הודעה שלא עוזרת לך כלל... אכתוב לך את מילות המפתח לחיפוש
הנתיב המלא של אובייקט נקרא ה-fully qualified name ובר"ת FQN
-
@yossiz
מדובר על SSMS (צודק לגבי הצורך בדיוק, החכמתי)מה אני מנסה לעשות?
אני מעוניין להריץ שאילתא שתחזיר תוצאות משלוש DataBase
ולצורך כך אני משתמש בOUTER APPLYאממה
חלק מהשאילתות הם העתקה משאילתות קיימות שלא אני כתבתי, והם נכתבו לפי שם הטבלה בלבד
(הערה: שמות הטבלאות זהות בשתי המסדי נתונים, רק שם המסד שונה)
וע"מ שאוכל להריץ את השאילתה המלאה, אני צריך לבצע את ההחלפה הנ"ל