Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Jalankan prosedur tersimpan di blok OUTER APPLY

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan DateTime hanya pada tahun di SQL Server

  2. Mengapa memilih klausa Top dapat menyebabkan biaya waktu yang lama?

  3. Baca konfigurasi .NET dari database

  4. jarak antara dua garis bujur dan garis lintang

  5. Perbaiki Error Msg 4151 "Tipe argumen pertama ke NULLIF tidak dapat menjadi konstanta NULL karena tipe argumen pertama harus diketahui" di SQL Server