सबसे पहले आपको एक प्रकार बनाना होगा:
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
आप यहां कर्सर का उपयोग क्यों करना चाहते हैं, या आपको लगता है कि आपको एक की आवश्यकता है, मुझे यकीन नहीं है। आप एक ORDER BY
जोड़ सकते हैं INSERT...SELECT
. का खंड अगर आपको लगता है कि यह उपयोगी होगा (और ऑर्डर करने के लिए कुछ सार्थक है), लेकिन अन्यथा यदि आप वास्तव में यहां एक कर्सर चाहते हैं तो आपको @datatable
के खिलाफ एक घोषित करने में सक्षम होना चाहिए जैसा कि आप किसी अन्य तालिका के लिए करेंगे।