Tôi có một dự án SSDT. Khi xuất bản một phiên bản mới, tôi muốn xuất bản/khởi tạo một số dữ liệu trong cơ sở dữ liệu. Điều đó có thể được thực hiện bằng SSDT không?Xuất bản dữ liệu bằng SSDT?
Trả lời
Nó có thể được thực hiện, nhưng có thể phức tạp. Nếu bạn thiết lập một biến trong dự án có thể được sử dụng cho các bản phát hành "Mới", bạn có thể đặt nó vào tập lệnh sau triển khai của bạn như một phần sẽ chạy một loạt các chèn, nhưng chỉ cho kiểu "Mới" đó.
Như David đã đề cập, cách tốt hơn có thể là sử dụng dữ liệu của Cổng Đỏ so sánh hoặc chạy tập lệnh sau khi tạo cơ sở dữ liệu. Có thể làm điều đó trong các kịch bản hậu triển khai, nhưng có thể chứng minh là khó khăn.
Something như thế này có thể làm việc:
IF '$(DeployType)' = 'New'
BEGIN --"New" release scripts
PRINT 'Post-Deploy Scripts for release.'
:r .\InsertScript1.sql
:r .\InsertScript2.sql
--etc
END --"New" release scripts
Điều này không thể thực hiện được trong SSDT. current guidance là sử dụng tập lệnh hậu triển khai.
Redgate ReadyRoll cung cấp nhiều trải nghiệm quen thuộc cho người dùng SSDT, nhưng đã cải thiện static data management cũng như nhiều cải tiến khác.
Có vẻ như tập lệnh sau triển khai có nghĩa là IS có thể thực hiện được, đúng không? –
Vâng, trong nhiều như bất cứ điều gì có thể trong mã! Những gì tôi có nghĩa là không có sự hỗ trợ đặc biệt cho dữ liệu tĩnh, do đó bạn phải chạy mã của riêng bạn trong kịch bản bài viết sâu như một cách giải quyết. –
Chúng tôi bao gồm Merge-scripts tự động, khi chúng được đặt trong một thư mục con cụ thể của dự án.
Chúng tôi cũng sử dụng các tập lệnh hợp nhất và các tập lệnh được tạo tự động từ tập lệnh khác. Chúng được bao gồm một cách rõ ràng trong kịch bản triển khai bài tương tự như câu trả lời của Peter Schott nhưng không có kiểm tra 'mới'. –
tùy thuộc vào những gì bạn làm, bảng giá trị custructors có thể là một cái gì đó để có một cái nhìn tại địa chỉ:
SELECT *
FROM
(VALUES
(101, 'Bikes'),
(102, 'Accessories'),
(103, 'Clothes')
) AS Category(CategoryID, CategoryName);
Đây là một cách dễ dàng vận chuyển và so sánh bằng SSDT.
Để biết thông tin về quặng, hãy xem https://www.simple-talk.com/sql/sql-training/table-value-constructors-in-sql-server-2008/
- 1. Truy xuất dữ liệu Json bằng HttpClient
- 2. "Xuất" dữ liệu lõi với Bản ghi Huyền diệu
- 3. Redshift với SSIS/SSDT
- 4. Thiết lập Sơ đồ Cơ sở dữ liệu trong VS2012 & SSDT?
- 5. Xuất dữ liệu bảng Postgresql bằng cách sử dụng pgAdmin
- 6. Công cụ dữ liệu SQL Server (SSDT): Sự khác biệt giữa Xây dựng, Xuất bản, Triển khai và So sánh + Cập nhật
- 7. Làm SSDT chỉ tạo ra một kịch bản SQL (và không triển khai cơ sở dữ liệu)
- 8. Triển khai dự án cơ sở dữ liệu SQL Server (SSDT) qua dòng lệnh
- 9. cách trích xuất dữ liệu từ tệp xml bằng notepad ++?
- 10. Facebook API Xuất bản nguồn cấp dữ liệu trong Nhóm
- 11. Vấn đề với việc chặn các lỗi trong SSDT (Công cụ Dữ liệu SQL Server)
- 12. Cách tìm/trích xuất dữ liệu từ xml bằng jQuery
- 13. Cách xuất (kết xuất) Dữ liệu WebSQL
- 14. Truy xuất dữ liệu từ cơ sở dữ liệu trong vòng 7 ngày qua bằng linq
- 15. Sử dụng Microsoft.Build.Evaluation để xuất bản dự án cơ sở dữ liệu (.sqlproj)
- 16. Dữ liệu blob được xuất khác với dữ liệu DB
- 17. Xuất dữ liệu vào pdf
- 18. Làm cách nào để chuyển đổi dự án cơ sở dữ liệu Visual Studio 2010 sang một Dự án SSDT
- 19. Cơ sở dữ liệu xuất MSSQL với dữ liệu
- 20. SSDT Tạo các tập lệnh triển khai SQLCMD không
- 21. cách xuất macro dữ liệu Access 2010
- 22. Xuất dữ liệu từ một DataTable YUI
- 23. Trích xuất dữ liệu từ Wikipedia API
- 24. Nhập Dữ liệu bằng MagicalRecord
- 25. Truy xuất dữ liệu từ trăn XML
- 26. Xuất dữ liệu ASP.Net sang Excel
- 27. Xuất dữ liệu từ MATLAB sang csv
- 28. C# trích xuất dữ liệu từ XML
- 29. Truy cập dữ liệu được truy xuất
- 30. Xuất dữ liệu GridView vào tệp CSV
Nó có thể làm việc để đưa vào một số logic vào các kịch bản sau triển khai để kiểm tra sự tồn tại của các bản ghi trước khi cố gắng chạy DML? –
Chúng tôi làm điều đó, nhưng kịch bản triển khai bài đăng này chỉ chạy các tập lệnh thực tế. Bên trong tập lệnh, chúng tôi kiểm tra xem liệu dữ liệu đã tồn tại chưa trước khi chèn nó. Đây sẽ chỉ là một cách để chỉ chạy các tập lệnh nhất định nếu bạn sử dụng một giá trị nhất định cho biến dự án của mình. Ngoài ra, khi chúng ta chuyển sang biến "Mới", nó được thiết lập để chạy với một hồ sơ xuất bản "Mới" luôn tạo lại cơ sở dữ liệu để chúng tôi không kiểm tra nhiều trong các trường hợp này. –