Първо трябва да създадете тип:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Сега вашата съхранена процедура може да декларира това като входен параметър само за четене:
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
Защо искате да използвате курсор тук или смятате, че имате нужда от такъв, не съм сигурен. Можете да добавите ORDER BY
клауза към INSERT...SELECT
ако смятате, че това ще бъде полезно (и има нещо смислено за подреждане), но в противен случай, ако наистина искате курсор тук, трябва да можете да декларирате такъв срещу @datatable
точно както бихте направили за всяка друга маса.