Zuerst müssen Sie einen Typ erstellen:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Jetzt kann Ihre gespeicherte Prozedur dies als schreibgeschützten Eingabeparameter deklarieren:
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
Ich bin mir nicht sicher, warum Sie hier einen Cursor verwenden möchten oder denken, dass Sie einen brauchen. Sie können einen ORDER BY
hinzufügen -Klausel zu INSERT...SELECT
wenn Sie denken, dass das nützlich sein wird (und es gibt etwas Sinnvolles zum Ordnen), aber ansonsten, wenn Sie wirklich wirklich einen Cursor hier wollen, sollten Sie in der Lage sein, einen gegen @datatable
zu deklarieren genau wie bei jeder anderen Tabelle.