Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql server存储过程中的多个表类型参数_Sql_Sql Server_Tsql - Fatal编程技术网

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

sql server存储过程中的多个表类型参数,sql,sql-server,tsql,Sql,Sql Server,Tsql,是否可以使用多个表值参数调用T-SQL(SQL Server 2012)存储过程 即 我犯了一个错误 必须声明标量变量“@P2” 存储过程可以接受多个参数,在这种情况下,用户定义的类型参数与SQL Server系统类型参数没有任何区别 如果您只执行以下代码,它将允许您创建一个没有任何错误的过程,这说明SQL Server允许我们创建接受多个用户定义类型参数的过程 --------------------Test --------------------------------- CREATE

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

我犯了一个错误

必须声明标量变量“@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
的变量,那么一旦您发现该变量,您就可以为该变量使用不同的名称

是的,这是可能的,您在问题中显示的代码不会导致此错误。显示存储过程的完整定义。您说得对,谢谢。我在代码中发现了一个错误(输入错误)。如果你把答案贴出来,我会接受的。
--------------------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