/ / Varios parámetros de tipo de tabla en el procedimiento almacenado del servidor sql - sql, sql-server, tsql

Varios parámetros de tipo de tabla en el procedimiento almacenado del servidor sql - sql, sql-server, tsql

¿Es posible llamar a un procedimiento almacenado de T-SQL (SQL Server 2012) con más de un parámetro con valores de tabla?

Es decir.

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
...

Estoy recibiendo un error

Debe declarar la variable escalar "@ P2"

Respuestas

1 para la respuesta № 1

Los procedimientos almacenados pueden aceptar múltiples parámetros y, en este caso, los parámetros de tipo definido por el usuario no son diferentes de los parámetros de tipo de sistema de SQL Server.

Si solo ejecuta el siguiente código lo harále permite crear un procedimiento sin errores, lo que explica que SQL Server sí nos permite crear procedimientos que acepten múltiples parámetros de tipo definido por el usuario.

--------------------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

El error existe en otra parte de su código en el que está intentando usar una variable que no ha declarado. y como ya tienes una Variable llamada @P2 Una vez que haya encontrado esa variable, use un nombre diferente para esa variable.