sql >> Databáze >  >> RDS >> Sqlserver

Jak ukládáte statická data v SQL Server Database Project ve VS 2012

Můžete použít tento přístup:

  • Vložte referenční data do souborů XML, jeden do každé tabulky
  • Přidejte do svého databázového projektu soubory XML s referenčními daty
  • Použijte skript po nasazení k extrahování dat z XML a jejich sloučení do tabulek

Zde je podrobnější popis každého kroku ilustrovaný příkladem. Řekněme, že potřebujete inicializovat tabulku zemí, která má tuto strukturu:

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

Vytvořte novou složku s názvem ReferenceData pod vaším databázovým projektem. Mělo by to být sourozenecká složka Schema Objects a Scripts .

Přidejte nový soubor XML s názvem Country.xml do ReferenceData složku. Vyplňte soubor následovně:

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

Najděte Script.PostDeployment.sql a přidejte do něj následující kód:

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

Toto řešení jsem vyzkoušel pouze ve VS 2008, ale mělo by být agnostické vůči vašemu vývojovému prostředí.




  1. Zdarma ES pro 11.2.0.4 a 12.2 Datum vydání

  2. Rails a jsonb typ jsonb neexistuje

  3. Mám používat Oracle UCP nebo HikariCP pro moderní aplikace?

  4. Instalace SQL Server Failover Cluster -1