我想将 DataDable 传递给 存储过程作为 以下各列的 参数 :
Supp_Id int Del_Methode_Id int Ord_Ammount int Promo_Id int Discount_Ammount Money
现在,我想在存储过程中使用此数据表,并要在其上声明一个游标。然后使用该光标将值顺序插入数据库表中。
请告诉我如何在存储过程中 声明datatable参数* ,然后在该 参数 上使用 游标 ? *
首先,您需要创建一个类型:
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
我不确定为什么要在这里使用游标,或者认为您需要一个游标。如果您认为这很有用(可以在其中进行一些有意义的排序),则可以在ORDERBY子句中添加一个子句INSERT...SELECT,但是否则,如果您真的想要在此处使用游标,则应该能够@datatable像针对其他游标一样声明一个游标。桌子。
ORDERBY
INSERT...SELECT
@datatable