478
צפיות
צפיות
9
תשובות
תשובות
multiple selects in stored procedur
מישהו יודע איך לכתוב SP שמביא נתונים ממספר טבלאות?, לדוגמא:
select top 10 * from Table1
select top 10 * from Table2
מישהו יודע איך לכתוב SP שמביא נתונים ממספר טבלאות?, לדוגמא:
select top 10 * from Table1
select top 10 * from Table2
9 תשובות
כמו בשאילתא רגילה
כותבים SP כמו שכותבים שאילתא רגילה (חוץ מהקטע של שליחת והחזרת פרמטרים)
SELECT TOP 10 * FROM t1 , t2
WHERE t1.id = t2.fk
אם אתה לא יודע לאחד טבלאות גם בשאילתא רגילה תבדוק במדריך, בעיקרון האיחוד נקרא join
לא לזה התכוונתי
אני רוצה באותו SP למשוך ולהציג נתונים ממספר טבלאות שאינן קשורות אחת לשניה.
פשוט במקום לרשום 3 SP שמושכים את 10 הרשומות האחרונות מכל טבלה אני רוצה לרשום SP אחד עם שלושה select
אתה רוצה את כל השורות?
אם אתה רוצה רק נתונים בודדים מכל טבלה אז אתה יכול להגדיר כמה משתני output
אם אתה רוצה להחזיר שלושה RS, אני לא יודע
תשתמש ב – NextRecordset
תכתוב את שלושת ה – select-ים שלך ב – Sp כמו שכתבת.
ואז תקרא ל – Sp מתוך ה – ASP ותשתמש בפקודה NextRecordset
של ADO. למידע נוסף ודוגמאות קרא כאן:
http://www.devguru.com/technologies/ado/8685.asp
אני רוצה את כל השורות
הבעיה שאני מגדיר שלושה SELECT שבכל אחד אני מבקש 5 רשומות ושאני מציג את הנתונים הוא מביא לי רק את 5 הרשומות של השאילתא הראשונה ולא את הרשומות של השאילתות האחרות.
תנסה להשתמש ב – UNION
אם המבנה של שלוש הטבלאות שעליהן אתה מבצע Select זהה אתה יכול להשתמש בפקודת UNION ב – SQL שלך לדוגמה:
SELECT * FROM Table1
UNION
SELECT * FROM Table2
מקווה שזה יפתור לך את הבעיה
המבנה לא זהה!
ניסיתי להשתמש ב – NextRecordset?
תנסה את הקוד הזה על ה – Sp שלך
תכניס את פקודות ה – Select אחת אחרי השנייה
Do While Not objRecordset.State = adStateClosed
For Each objField In objRecordset.Fields
Response.Write objField.OriginalValue & VBCRLF
Response.Write objField.UnderlyingValue & VBCRLF
Response.Write objField.Value & VBCRLF
Next
Set objRecordset = objRecordset.NextRecordset
Loop