gpt4 book ai didi

sql-server - 如何在 View 中调用存储过程?

转载 作者:行者123 更新时间:2023-12-01 19:32:16 29 4
gpt4 key购买 nike

如何调用在 View 中返回数据的存储过程?这可能吗?

最佳答案

SQL Server 中不允许这种构造。内联表值函数可以作为参数化 View 执行,但仍然不允许像这样调用 SP。

这里有一些交替使用 SP 和内联 TVF 的示例 - 您会发现 TVF 更灵活(它基本上更像是 View 而不是函数),因此可以使用内联 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

关于sql-server - 如何在 View 中调用存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916784/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com