Eerst moet je een type aanmaken:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Nu kan uw opgeslagen procedure dit declareren als een alleen-lezen invoerparameter:
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
Waarom je hier een cursor wilt gebruiken, of denkt dat je er een nodig hebt, weet ik niet zeker. U kunt een ORDER BY
. toevoegen clausule toe aan de INSERT...SELECT
als je denkt dat dat nuttig zal zijn (en er is iets zinnigs om door te bestellen), maar anders, als je hier echt een cursor wilt, zou je er een moeten kunnen declareren tegen @datatable
net als bij elke andere tafel.