sql >> データベース >  >> RDS >> Sqlserver

ビューでストアドプロシージャを呼び出す方法は?

    この構造はSQLServerでは許可されていません。インラインテーブル値関数はパラメーター化されたビューとして実行できますが、このようなSPを呼び出すことはできません。

    SPとインラインTVFを交換可能に使用するいくつかの例を次に示します。TVFはより柔軟であるため(基本的には関数というよりもビューに似ています)、インラインTVFを使用できる場合は、より再利用できます。使用可能:

    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. PythonとSQLiteの警告

    2. PHPでSQLServerに接続できません

    3. MySQLデータベースをPHPWebサイトに接続する方法

    4. アクセスデータバースコネクタがテストに使用できるようになりました