तालिका को स्वीकार करने के लिए आप संग्रहीत कार्यविधि को बदल सकते हैं मूल्यवान पैरामीटर एक इनपुट के रूप में। सबसे पहले, आपको एक उपयोगकर्ता परिभाषित तालिका TYPE बनाने की आवश्यकता होगी जो C# DataTable की संरचना से मेल खाती हो:
CREATE TYPE dbo.PersonType AS TABLE
(
Name NVARCHAR(50), -- match the length of SomeTable.Column1
Age INT
);
अपना एसपीआरओसी समायोजित करें:
CREATE PROCEDURE dbo.InsertPerson
@Person dbo.PersonType READONLY
AS
BEGIN
INSERT INTO SomeTable(Column1, Column2)
SELECT p.Name, p.Age
FROM @Person p;
END
C# में, जब आप डेटाटेबल को PROC पैरामीटर से बाँधते हैं, तो आपको पैरामीटर को इस प्रकार निर्दिष्ट करना होगा:
parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "dbo.PersonType";
यहां उदाहरण भी देखें टेबल पासिंग-वैल्यूड संग्रहित प्रक्रिया के लिए पैरामीटर