Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để bạn lưu trữ dữ liệu tĩnh trong Dự án cơ sở dữ liệu SQL Server của bạn trong VS 2012

Bạn có thể sử dụng phương pháp này:

  • Đưa dữ liệu tham chiếu của bạn vào các tệp XML, mỗi tệp một bảng
  • Thêm tệp XML với dữ liệu tham chiếu vào dự án cơ sở dữ liệu của bạn
  • Sử dụng tập lệnh Hậu triển khai để trích xuất dữ liệu từ XML và hợp nhất nó vào các bảng của bạn

Dưới đây là mô tả chi tiết hơn về từng bước, được minh họa bằng ví dụ. Giả sử rằng bạn cần khởi tạo một bảng các quốc gia có cấu trúc này:

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

Tạo một thư mục mới có tên là ReferenceData trong dự án cơ sở dữ liệu của bạn. Nó phải là một thư mục anh em của Schema ObjectsScripts .

Thêm tệp XML mới có tên Country.xml vào ReferenceData thư mục. Điền vào tệp như sau:

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

Tìm Script.PostDeployment.sql và thêm mã sau vào nó:

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

Tôi đã thử giải pháp này chỉ trong VS 2008, nhưng nó không phù hợp với môi trường phát triển của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server SAU KHI CHÈN kích hoạt không thấy hàng vừa chèn

  2. Khóa hàng - sử dụng chúng theo cách thủ công

  3. Phiên bản phụ trợ không được hỗ trợ để thiết kế sơ đồ hoặc bảng cơ sở dữ liệu

  4. Cách xác định giá trị cho các tháng bị thiếu dựa trên dữ liệu của các tháng trước trong T-SQL

  5. Truy vấn sử dụng bảng dẫn xuất với ISNUMERIC dẫn đến chuyển đổi không thành công (varchar thành int)