2009-10-25 28 views
6

Tôi chỉ mới bắt đầu với các dự án Cơ sở dữ liệu Visual Studio và yêu thích các kế hoạch tạo dữ liệu mà tôi có thể tạo với nó. Tuy nhiên, trong một trong các dự án của tôi, tôi cần điền một bảng tra cứu với các giá trị cụ thể. Vì mối quan hệ khóa ngoài tồn tại giữa bảng tra cứu và bảng khác, tôi không thể xóa bảng tra cứu khỏi kế hoạch tạo dữ liệu mà không xóa bảng khác khỏi kế hoạch. Nhưng sau đó tôi không thể tạo bất kỳ dữ liệu nào cho bảng khác.Tạo kế hoạch tạo dữ liệu bao gồm các giá trị bảng tra cứu chính xác

Làm cách nào tôi có thể a) chỉ định dữ liệu chính xác mà tôi muốn trình tạo sử dụng khi thêm dữ liệu vào bảng tra cứu hoặc b) có trình tạo không thêm giá trị mới vào bảng mà thay vào đó sử dụng giá trị đã tồn tại?

Cảm ơn!

Trả lời

4

Dưới đây là quan điểm của tôi về Phù hợp hệ dữ liệu trong Visual Studio 2008

Các công cụ thế hệ dữ liệu trong Visual Studio 2008 Dữ liệu Edition là một công cụ tuyệt vời cho Populating cơ sở dữ liệu của bạn với thông tin vô nghĩa để sử dụng trong các thử nghiệm đơn vị của bạn, nhưng khi nó có thời gian để thực hiện kiểm thử tích hợp, việc tạo lại một tập dữ liệu phù hợp trong các bảng chính (thường là các bảng tra cứu được sử dụng trong các khóa ngoài thường được nhân đôi là Enums trong các giải pháp C# hoặc VB.Net). May mắn thay, công cụ tạo dữ liệu bao gồm trình tạo liên kết dữ liệu tuần tự. Máy phát điện này chọn bản ghi từ nguồn dữ liệu được chỉ định và sử dụng kết quả để điền bảng của bạn.

Vậy làm cách nào để chúng tôi tận dụng điều này? Trong các giải pháp cơ sở dữ liệu của chúng tôi, chúng tôi bao gồm hai cơ sở dữ liệu - cơ sở dữ liệu thực tế mà chúng tôi đang làm việc và một cơ sở dữ liệu datageneration. Đối với các bảng mà chúng ta cần gộp chung, chúng ta sao chép lược đồ & bảng trong cơ sở dữ liệu cơ sở dữ liệu (trừ bất kỳ chỉ mục/khóa/ràng buộc/trình kích hoạt, v.v.) và sau đó sử dụng tập lệnh sau triển khai cho cơ sở dữ liệu đó để tạo các bản ghi mong muốn . Để giảm sự trùng lặp của các tập lệnh phổ biến, kịch bản sau triển khai cho các điểm cơ sở dữ liệu thực sự để tập hợp dữ liệu điền tập lệnh theo một đường dẫn tương đối. Điều này cũng có nghĩa là các bảng này sẽ có cùng một bản ghi trong chúng cho dù bạn vừa triển khai cơ sở dữ liệu hay chỉ chạy kế hoạch tạo dữ liệu - điều này giúp mọi người trong nhóm dễ dàng hơn.

Full details here

1

Đây là cách cũ - nhưng chỉ cần thiết lập số cột 0 trong bảng tra cứu, và không xóa dữ liệu hiện có.

+2

Điều này dường như không hoạt động trong Visual Studio 2010. 'Không tạo được dữ liệu do ngoại lệ sau: Cột' MyForeignKeyId 'không cho phép DBNull.Value ..' xuất hiện 1 lần. –

+0

Bạn vẫn cần duy trì tính toàn vẹn khóa ngoại. Trong trường hợp của câu hỏi OP - có dữ liệu đã có trong bảng tra cứu không bị xóa. –

+0

Có. Khi chạy kế hoạch tạo dữ liệu của bạn, không bao giờ xóa dữ liệu hiện có và đặt số hàng để chèn vào 0 để duy trì các bảng miền còn nguyên vẹn. –

Các vấn đề liên quan