2011-08-31 30 views
16

tôi tạo bảng riêng loạiExecute thủ tục lưu trữ với giá trị bảng như tham số

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

và khi tôi muốn vượt qua Loại này như tham số như

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

làm thế nào tôi nên vượt qua nó trong EXEC GetData ????

Trả lời

29

Look at this

Bạn có thể tìm thấy một ví dụ

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

Để cư @data bằng cách sử dụng một câu lệnh SELECT:

DECLARE @data ObjectList 

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

EXEC GetData @data 
Các vấn đề liên quan