2011-08-31 17 views
16

puedo crear tabla propio tipoEjecutar procedimiento almacenado con valores de tabla como parámetro

CREATE TYPE [dbo].[ObjectsList] AS TABLE(
[Id] [int] NOT NULL, 
PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (IGNORE_DUP_KEY = OFF) 
) 
GO 

y cuando quiero pasar este tipo como parámetro como

CREATE PROCEDURE [dbo].[GetData](@DataIds ObjectsList READONLY) 

cómo debería pasar en EXEC GetData ????

Respuesta

29

Look at this

puede encontrar un ejemplo

DECLARE @data ObjectList 
INSERT @data (Id) VALUES (1) 
EXEC GetData @data 
1

Para rellenar @data mediante el uso de una instrucción SELECT:

DECLARE @data ObjectList 

INSERT @data (Id) 
SELECT 
    Id 
FROM 
    <someDB>.<someSchema>.<someTable> 
    JOIN ... etc 
WHERE 
    ... etc 

EXEC GetData @data 
Cuestiones relacionadas