Prosedur tersimpan tidak dirancang untuk penggunaan semacam itu, karena dapat melakukan operasi selain memilih data, dapat bekerja tanpa mengembalikan data atau dapat mengembalikan kumpulan yang berbeda dalam skenario yang berbeda.
Tidak seperti prosedur tersimpan, fungsi sangat cocok untuk digunakan sejalan dengan kueri lain.
Anda memiliki dua opsi:
A) Buat fungsi skalar yang hanya akan mengembalikan TeacherID
dan gunakan di 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
B) Buat fungsi bernilai tabel yang bisa memberi Anda semua data yang dibutuhkan dan Anda bisa bergabung (mendaftar) di dalamnya.
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
Berikut ini beberapa bacaan:Perbedaan antara Stored Procedure dan Function di SQL Server