更新时间:2022-11-02 23:10:34
首先,您需要创建一个类型:
First you need to create a type:
CREATE TYPE dbo.whatever AS TABLE
(
Supp_Id int,
Del_Methode_Id int,
Ord_Amount int,
Promo_Id int,
Discount_Amount Money
);
现在您的存储过程可以声明为只读输入参数:
Now your stored procedure can declare this as a read only input parameter:
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
为什么要在这里使用游标,你需要一个,我不知道。如果你认为这将是有用的,你可以在 INSERT ... SELECT
中添加一个 ORDER BY
是有意义的顺序),否则如果你真的想要一个游标在这里,你应该能够声明一个 @datatable
,就像对任何其他表一样。
Why you want to use a cursor here, or think you need one, I'm not sure. You can add an ORDER BY
clause to the INSERT...SELECT
if you think that will be useful (and there is something meaningful to order by), but otherwise if you really really want a cursor here you should be able to declare one against @datatable
just as you would for any other table.