Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

OUTER APPLY ब्लॉक में संग्रहीत कार्यविधि निष्पादित करें

संग्रहीत प्रक्रिया उस तरह के उपयोग के लिए डिज़ाइन नहीं की गई है, क्योंकि यह डेटा का चयन करने के अलावा अन्य संचालन कर सकती है, यह डेटा लौटाए बिना काम कर सकती है या यह विभिन्न परिदृश्यों में अलग-अलग सेट वापस कर सकती है।

संग्रहीत कार्यविधियों के विपरीत, फ़ंक्शन अन्य प्रश्नों के साथ इनलाइन उपयोग करने के लिए बिल्कुल उपयुक्त हैं।

आपके पास दो विकल्प हैं:

ए) एक स्केलर फ़ंक्शन बनाएं जो केवल एक TeacherID लौटाएगा और इसे अपने WHERE . में इस्तेमाल करें

CREATE FUNCTION udfGetTeacherID
(
    @lessonId int, @groupId int
)
RETURNS int
AS
BEGIN

    DECLARE @teacherId INT;

    SELECT @teacherId = GroupTeachers.TeacherId
    FROM GroupTeachers
    WHERE [email protected] AND [email protected];


    RETURN @teacherId;

END
GO

बी) तालिका-मूल्यवान फ़ंक्शन बनाएं जो आपको आवश्यक सभी डेटा प्राप्त कर सके और आप इसमें शामिल (आवेदन) कर सकें।

CREATE FUNCTION udfGetTeacherName
(
    @lessonId int, @groupId int
)
RETURNS TABLE 
AS
RETURN 
(
    SELECT t.TeacherLastName, t.TeacherFirstName, t.TeacherMiddleName
    FROM Teachers t
    INNER JOIN GroupTeachers g ON  T.TeacherID = g.TeacherID
    WHERE [email protected] AND [email protected]
)
GO

यहाँ कुछ पढ़ा जा रहा है:SQL सर्वर में संग्रहीत कार्यविधि और कार्य के बीच अंतर




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HTTP स्थिति 500 ​​- जावा रनटाइम एनवायरनमेंट (JRE) संस्करण 1.7 इस ड्राइवर द्वारा समर्थित नहीं है

  2. प्राथमिक कुंजी को कैसे अपडेट करें

  3. अस्थायी तालिका से फ़ील्ड नाम कैसे प्राप्त करें (SQL Server 2008)

  4. एसक्यूएल डॉट नोटेशन

  5. ट्री टेबल के लिए Sql क्वेरी