יצירת פונקציה בSQL SERVER
-
תודה,
אבל אמור להיות משהו יותר פשוט. אני מתכוון לזה, או זה http://www.techonthenet.com/sql_server/functions.php, אבל אני לא מצליח לעשות את זה בשרת עצמו, לכן ביקשתי דוגמת קוד מוכנה שאני יכול לשנות אותה ולהשתמש אתה.תודה.
פורסם במקור בפורום CODE613 ב01/07/2016 01:29 (+03:00)
-
תודה על העזרה.
ובעיה נוספת. אני עשיתי בפונקציה סינון לפי הפרמטר, ומשום מה הוא מחזיר לי כל הפעמים את כל הרשומות בלי לסנן בכלל (הוא דורש פרמטר, אבל מחזיר בלי להתחשב בו).CREATE FUNCTION ישות (@טקסטחופשילסינון CHAR) RETURNS TABLE AS RETURN ( SELECT יישויות.*, טלפונים.*, אימיילים.* FROM (יישויות LEFT JOIN טלפונים ON יישויות.קודמזהה = טלפונים.יישת) LEFT JOIN אימיילים ON יישויות.קודמזהה = אימיילים.היישות WHERE (((יישויות.שם) Like '%[@טקסטחופשילסינון]%')) OR (((יישויות.משפחה) Like '%[@טקסטחופשילסינון]%')) OR (((יישויות.כתובת) Like '%[@טקסטחופשילסינון]%')) OR (((יישויות.NUMBER ) Like '%[@טקסטחופשילסינון]%')) OR (((יישויות.עיר) Like '%[@טקסטחופשילסינון]%')) OR (((יישויות.תאריך) Like '%[@טקסטחופשילסינון]%')) OR (((יישויות.[פרטים_נוספים]) Like '%[@טקסטחופשילסינון]%')) OR (((טלפונים.מספר) Like '%[@טקסטחופשילסינון]%')) OR (((טלפונים.[פרטים נוספים]) Like '%[@טקסטחופשילסינון]%')) OR (((אימיילים.אימייל) Like '%[@טקסטחופשילסינון]%')) ) GO
מה יכולה להיות הבעיה?
תודה מראש.פורסם במקור בפורום CODE613 ב03/07/2016 21:57 (+03:00)
-
אינני מבין למה זה מחזיר לך הכל, זה היה צריך לא להחזיר לך כלום כי לא ככה כותבים.
החלף את '%[@טקסטחופשילסינון]%' ב '%' + @טקסטחופשילסינון + '%'ועוד עיצה, תכתוב כל מה שאתה יכול בלועזית. לא הייתי כעת משגע אותך להחליף את שמות הטבלאות ושדותיהם (אבל מומלץ מאוד)
אבל לפחות את המשתנה למשל.למה?
א. תעשה זאת למשך שנה ונראה מה תגיד אח"כ
ב. שארכיטקט לא יכעס
ג. שתרגיש פה בחברהפורסם במקור בפורום CODE613 ב04/07/2016 00:44 (+03:00)
-
אני מצטרף להמלצת דוד שאת הפרמטר תהפוך למחרוזת אבל תשקול אם אתה זקוק למחרוזת יוניקוד שזה nvarchar (ולא varchar).
דומה שהגעת מאקסס ולכן כל הסוגריים המרובעים והעגולים בשאילתה - במקרה שלך בכל משפט השאילתה (הפסוקיות SELECT - FROM - WHERE) לא דרוש אפילו סוגר אחד.
השפעת אקסס צצה גם בשמות בעברית, זאת טעות בכל כך הרבה רבדים, קבל עצה מבעל נסיון, ותר על זה, שבור שיניים ותתרגל לשמות באנגלית.
פורסם במקור בפורום CODE613 ב04/07/2016 10:51 (+03:00)