Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как съхранявате статични данни във вашия проект за база данни на SQL Server във VS 2012

Можете да използвате този подход:

  • Поставете референтните си данни в XML файлове, по един на таблица
  • Добавете XML файлове с референтни данни към вашия проект за база данни
  • Използвайте скрипт след внедряване, за да извлечете данните от XML и да ги обедините във вашите таблици

Ето по-подробно описание на всяка стъпка, илюстрирано с пример. Да кажем, че трябва да инициализирате таблица с държави, която има следната структура:

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

Създайте нова папка, наречена ReferenceData под вашия проект за база данни. Това трябва да е родствена папка на Schema Objects и Scripts .

Добавете нов XML файл, наречен Country.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)
;

Опитах това решение само във VS 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. Как да извлека данни от PDF?

  2. @@ГРЕШКА и/или ОПИТ - ХВАНЕ

  3. Симулация на CONNECT BY PRIOR на Oracle в SQL Server

  4. Как да вмъкна таблица с данни в таблица на база данни на SQL Server?

  5. Преглед на схемата на SQL Server