gpt4 book ai didi

sql - sql server存储过程中的多个表类型参数

转载 作者:行者123 更新时间:2023-12-02 03:37:32 24 4
gpt4 key购买 nike

是否可以使用多个表值参数调用 T-SQL (SQL Server 2012) 存储过程?

CREATE Type dbo.P1 AS TABLE 
(
Id Int NOT NULL,
Name nvarchar(50) NULL
)

CREATE Type dbo.P2 AS TABLE
(
Id Int NOT NULL,
Name nvarchar(50) NULL
)

CREATE PROCEDURE [dbo].[D]
(
@id0 Int,
@P1 dbo.P1 READONLY,
@P2 dbo.P2 READONLY
)
AS
...

我遇到了一个错误

Must declare the scalar variable "@P2"

最佳答案

存储过程可以接受多个参数,在这种情况下,用户定义的类型参数与 SQL Server 系统类型参数没有任何区别。

如果您只执行以下代码,它将允许您创建一个没有任何错误的过程,这说明 SQL Server 确实允许我们创建接受多个用户定义类型参数的过程。

--------------------Test ---------------------------------

CREATE Type dbo.P1 AS TABLE
(
Id Int NOT NULL,
Name nvarchar(50) NULL
)
GO

CREATE Type dbo.P2 AS TABLE
(
Id Int NOT NULL,
Name nvarchar(50) NULL
)
GO

CREATE PROCEDURE [dbo].[D]
(
@id0 Int,
@P1 dbo.P1 READONLY,
@P2 dbo.P2 READONLY
)
AS
BEGIN
SET NOCOUNT ON;

SELECT 'Debugging';
END
GO

错误存在于您尝试使用尚未声明的变量的代码中的其他地方。因为你已经有一个名为 @P2 的变量,一旦你发现该变量使用不同的名称。

关于sql - sql server存储过程中的多个表类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22441167/

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