Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

आप वीएस 2012 में अपने SQL सर्वर डेटाबेस प्रोजेक्ट में स्थिर डेटा कैसे संग्रहीत करते हैं

आप इस दृष्टिकोण का उपयोग कर सकते हैं:

  • अपना संदर्भ डेटा 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 में इस समाधान की कोशिश की, लेकिन यह आपके विकास पर्यावरण के लिए अज्ञेयवादी होना चाहिए।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर डेटटाइम ऑब्जेक्ट को बिगिनट (नेट टिक) में कनवर्ट करें

  2. लॉग फ़ाइल को नियंत्रण से बाहर किए बिना मैं एक विशाल तालिका से समाप्त हो चुके डेटा को कैसे हटा सकता हूं?

  3. SQL के लिए कोई अन्य समाधान मीडिया सेट में 2 मीडिया परिवार हैं लेकिन केवल 1 प्रदान किया गया है। सभी सदस्यों को प्रदान किया जाना चाहिए। गलती?

  4. SQL सर्वर प्रबंधन स्टूडियो की स्थापना के बाद सेवा सूची में SQL सर्वर सेवा उपलब्ध नहीं है

  5. SQL सर्वर (T-SQL) में वर्तमान दिनांक स्वरूप कैसे बदलें