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

Bagaimana cara memanggil Prosedur Tersimpan dalam Tampilan?

Konstruksi ini tidak diperbolehkan di SQL Server. Fungsi bernilai tabel sebaris dapat tampil sebagai tampilan berparameter, tetapi masih tidak diizinkan untuk memanggil SP seperti ini.

Berikut ini beberapa contoh penggunaan SP dan TVF inline secara bergantian - Anda akan melihat bahwa TVF lebih fleksibel (pada dasarnya lebih seperti tampilan daripada fungsi), jadi di mana TVF inline dapat digunakan, TVF dapat lebih re- dapat digunakan:

CREATE TABLE dbo.so916784 (
    num int
)
GO

INSERT INTO dbo.so916784 VALUES (0)
INSERT INTO dbo.so916784 VALUES (1)
INSERT INTO dbo.so916784 VALUES (2)
INSERT INTO dbo.so916784 VALUES (3)
INSERT INTO dbo.so916784 VALUES (4)
INSERT INTO dbo.so916784 VALUES (5)
INSERT INTO dbo.so916784 VALUES (6)
INSERT INTO dbo.so916784 VALUES (7)
INSERT INTO dbo.so916784 VALUES (8)
INSERT INTO dbo.so916784 VALUES (9)
GO

CREATE PROCEDURE dbo.usp_so916784 @mod AS int
AS 
BEGIN
    SELECT  *
    FROM    dbo.so916784
    WHERE   num % @mod = 0
END
GO

CREATE FUNCTION dbo.tvf_so916784 (@mod AS int)
RETURNS TABLE
    AS
RETURN
    (
     SELECT *
     FROM   dbo.so916784
     WHERE  num % @mod = 0
    )
GO    

EXEC dbo.usp_so916784 3
EXEC dbo.usp_so916784 4

SELECT * FROM dbo.tvf_so916784(3)    
SELECT * FROM dbo.tvf_so916784(4)

DROP FUNCTION dbo.tvf_so916784
DROP PROCEDURE dbo.usp_so916784
DROP TABLE dbo.so916784


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menjatuhkan Batasan di SQL Server (T-SQL)

  2. Cara Mengubah Format Tanggal Saat Ini di SQL Server (T-SQL)

  3. EXP() Contoh di SQL Server

  4. Cara Mengembalikan Daftar Tipe Data di SQL Server (T-SQL)

  5. Bagaimana cara menentukan nomor port dalam string koneksi SQL Server?