Vous devez d'abord créer un type :
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Maintenant, votre procédure stockée peut déclarer ceci en tant que paramètre d'entrée en lecture seule :
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
Pourquoi voulez-vous utiliser un curseur ici, ou pensez-vous en avoir besoin, je ne suis pas sûr. Vous pouvez ajouter un ORDER BY
clause à INSERT...SELECT
si vous pensez que cela sera utile (et qu'il y a quelque chose de significatif à commander), mais sinon, si vous voulez vraiment vraiment un curseur ici, vous devriez pouvoir en déclarer un contre @datatable
comme vous le feriez pour n'importe quelle autre table.