Först måste du skapa en typ:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Nu kan din lagrade procedur deklarera detta som en skrivskyddad indataparameter:
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
Varför du vill använda en markör här, eller tror att du behöver en, är jag inte säker på. Du kan lägga till en ORDER BY
satsen till INSERT...SELECT
om du tror att det kommer att vara användbart (och det finns något vettigt att beställa efter), men annars om du verkligen vill ha en markör här bör du kunna deklarera en mot @datatable
precis som du skulle göra för alla andra bord.