Sau*_*kar 3 sql sql-server datatable cursor sql-server-2008
我想将DataDable传递给存储过程作为参数 cointaning下面的列:
Supp_Id int
Del_Methode_Id int
Ord_Ammount int
Promo_Id int
Discount_Ammount Money
Run Code Online (Sandbox Code Playgroud)
现在我想在存储过程中使用这个数据表,并希望在其上声明一个游标.并使用该游标按顺序将值插入数据库表.
请告诉我如何在存储过程中声明datatable参数,然后在该参数上使用cursor?
Aar*_*and 10
首先,您需要创建一个类型:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
Run Code Online (Sandbox Code Playgroud)
现在,您的存储过程可以将此声明为只读输入参数:
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
Run Code Online (Sandbox Code Playgroud)
为什么你想在这里使用光标,或者认为你需要一个,我不确定.你可以ORDER BY
在INSERT...SELECT
你认为有用的时候添加一个子句(并且有一些有意义的命令),但是如果你真的想在这里使用游标,你应该可以@datatable
像对待任何其他游标一样声明一个表.
归档时间: |
|
查看次数: |
19105 次 |
最近记录: |