sql server存储过程中的多个表类型参数
是否可以使用多个表值参数调用T-SQL(SQL Server 2012)存储过程 即 我犯了一个错误 必须声明标量变量“@P2”sql server存储过程中的多个表类型参数,sql,sql-server,tsql,Sql,Sql Server,Tsql,是否可以使用多个表值参数调用T-SQL(SQL Server 2012)存储过程 即 我犯了一个错误 必须声明标量变量“@P2” 存储过程可以接受多个参数,在这种情况下,用户定义的类型参数与SQL Server系统类型参数没有任何区别 如果您只执行以下代码,它将允许您创建一个没有任何错误的过程,这说明SQL Server允许我们创建接受多个用户定义类型参数的过程 --------------------Test --------------------------------- CREATE
存储过程可以接受多个参数,在这种情况下,用户定义的类型参数与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
的变量,那么一旦您发现该变量,您就可以为该变量使用不同的名称 是的,这是可能的,您在问题中显示的代码不会导致此错误。显示存储过程的完整定义。您说得对,谢谢。我在代码中发现了一个错误(输入错误)。如果你把答案贴出来,我会接受的。
--------------------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