19

'daki statik verileri nasıl depolarsınız? Tüm tabloyu, saklı yordamları, görünümleri vb. Komut dosyalarını tutmak için SQL Server veritabanı projesini kullanmaya çalışıyorum. Artık tüm referans (veya statik) verilerimizi de saklayabilmenin bir yolunu buldum. Araç veya proje çalıştırıldığında, tüm DB nesnelerini yükleyecek ve tüm referans verilerini ekleyecektir.SQL Server veritabanı projenize VS 2012

vs 2010 için benzer makaleleri buldum ama Veritabanı Profesyonelleri için Team Edition gibi şeyler kullanıyorlardı.

  • DB'mizi kaynak denetimi altında alın.
  • Yerel geliştirme DB'mizi en son sürümde kaynak kontrolüyle senkronize edin. Visual Studio 2012 ve SQL Server 2012
  • Kullanım Net araçları mümkün olduğunca olup REDGATE gibi bir şeyle
  • Çalışması (Redgate harika ama ben araçlarını kullanabilirsiniz eğer ben sadece bunun için henüz out istemiyoruz 2012 VS) içinde
Bu yaklaşımı kullanabilirsiniz
+0

Neden Entity Framework Code ilkini kullanmıyorsunuz? POCO sınıfları + DataAnnotations veya Fluent API kullanarak tüm veritabanı tablolarınızı/ilişkilerinizi modellemek için kullanabilirsiniz. Ardından EF Migrations, DB sürüm kontrolünüzü kullanabilir ve/veya referans verilerinizi de toplayabilir. – Kittoes0124

cevap

22

: veritabanı projesine referans veri ile XML dosyalarını ekleme, XML dosyaları içine

  • Masa başına bir tane olmak üzere referans verilerini koyun

    • kullanın Sonrası Dağıtım komut XML veri ayıklamak ve tablolar

    içine birleştirme İşte bir örnek ile gösterilmektedir her adımı daha detaylı açıklama olduğunu için. Diyelim ki bu yapıya sahip ülkelerin bir tablo ilklendirmelisiniz diyelim:

    create table Country (
        CountryId uniqueidentifier NOT NULL, 
        CountryCode varchar(2) NOT NULL, 
        CountryName varchar(254) NOT NULL 
    ) 
    

    veritabanı projesi kapsamında ReferenceData adlı yeni bir klasör oluşturun. Schema Objects ve Scripts'un bir kardeş klasörü olmalıdır.

    adlı yeni bir XML dosyasını ReferenceData klasörüne ekleyin. Dosya şu şekilde doldurun:

    <countries> 
        <country CountryCode="CA" CountryName="Canada"/> 
        <country CountryCode="MX" CountryName="Mexico"/> 
        <country CountryCode="US" CountryName="United States of America"/> 
    </countries> 
    

    Script.PostDeployment.sql bulun ve ona aşağıdaki kodu ekleyin:

    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) 
    ; 
    

    Ben sadece VS 2008 bu çözümü denedik ama geliştirme ortamına agnostik olmalıdır.

  • +0

    Bir düşünceye gönüllü olan tek kişi olduğunuz için bazı itibara sahip olabilirsiniz. :) – uriDium