Nejprve musíte vytvořit typ:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Nyní to vaše uložená procedura může deklarovat jako vstupní parametr pouze pro čtení:
CREATE PROCEDURE dbo.do_whatever
@datatable dbo.whatever READONLY
AS
BEGIN
SET NOCOUNT ON;
INSERT dbo.destination_table(column_list)
SELECT column_list FROM @datatable;
END
GO
Proč zde chcete použít kurzor nebo si myslíte, že jej potřebujete, nejsem si jistý. Můžete přidat ORDER BY
klauzule do INSERT...SELECT
pokud si myslíte, že to bude užitečné (a je tu něco smysluplného k objednání), ale jinak, pokud opravdu chcete kurzor zde, měli byste být schopni deklarovat jej proti @datatable
stejně jako u jakéhokoli jiného stolu.