आप इस दृष्टिकोण का उपयोग कर सकते हैं:
- अपना संदर्भ डेटा XML फ़ाइलों में डालें, प्रति तालिका एक
- अपने डेटाबेस प्रोजेक्ट में संदर्भ डेटा वाली XML फ़ाइलें जोड़ें
- एक्सएमएल से डेटा निकालने और इसे अपनी टेबल में मर्ज करने के लिए पोस्ट-डिप्लॉयमेंट स्क्रिप्ट का उपयोग करें
यहां एक उदाहरण के साथ सचित्र प्रत्येक चरण का अधिक विस्तृत विवरण दिया गया है। मान लें कि आपको इस संरचना वाले देशों की तालिका प्रारंभ करने की आवश्यकता है:
create table Country (
CountryId uniqueidentifier NOT NULL,
CountryCode varchar(2) NOT NULL,
CountryName varchar(254) NOT NULL
)
ReferenceData
called नामक एक नया फ़ोल्डर बनाएं आपके डेटाबेस प्रोजेक्ट के तहत। यह Schema Objects
. का सिबलिंग फोल्डर होना चाहिए और Scripts
।
Country.xml
नामक एक नई XML फ़ाइल जोड़ें ReferenceData
. के लिए फ़ोल्डर। फ़ाइल को इस प्रकार भरें:
<countries>
<country CountryCode="CA" CountryName="Canada"/>
<country CountryCode="MX" CountryName="Mexico"/>
<country CountryCode="US" CountryName="United States of America"/>
</countries>
खोजें Script.PostDeployment.sql
, और इसमें निम्न कोड जोड़ें:
DECLARE @h_Country int
DECLARE @xmlCountry xml = N'
:r ..\..\ReferenceData\Country.xml
'
EXEC sp_xml_preparedocument @h_Country OUTPUT, @xmlCountry
MERGE Country AS target USING (
SELECT c.CountryCode, c.CountryName
FROM OPENXML(@h_Country, '/countries/country', 1)
WITH (CountryCode varchar(2), CountryName varchar(254)) as c) AS source (CountryCode, CountryName)
ON (source.CountryCode = target.CountryCode)
WHEN MATCHED THEN
UPDATE SET CountryName = source.CountryName
WHEN NOT MATCHED BY TARGET THEN
INSERT (CountryId, CountryCode, CountryName) values (newid(), source.CountryCode, source.CountryName)
;
मैंने केवल वीएस 2008 में इस समाधान की कोशिश की, लेकिन यह आपके विकास पर्यावरण के लिए अज्ञेयवादी होना चाहिए।