Các tệp cơ sở dữ liệu được xây dựng bằng SQL 2008 không tương thích với năm 2005. Có cách nào giải quyết không?
Các tệp cơ sở dữ liệu được xây dựng bằng SQL 2008 không tương thích với năm 2005. Có cách nào giải quyết không?
Câu trả lời:
Không có công cụ bên thứ 3 cần thiết. SQL Server 2008 Management Studio đã cho chúng tôi một công cụ rất mạnh để chuyển đổi cơ sở dữ liệu vì họ đã thêm tùy chọn "Dữ liệu tập lệnh" vào trình hướng dẫn "Cơ sở dữ liệu tập lệnh".
Chỉ cần nhấp chuột phải vào DB trong SQL2008 SSMS và đi đến Nhiệm vụ, sau đó "Tạo tập lệnh"
Đi qua trình hướng dẫn, đảm bảo chọn "Đúng" cho "Dữ liệu tập lệnh" trong tùy chọn bảng / chế độ xem. Chọn tất cả các đối tượng, sau đó chạy tập lệnh mà nó tạo trên máy chủ 2005. (Xin lưu ý rằng tập lệnh được tạo có thể rất lớn nếu cơ sở dữ liệu ban đầu rất lớn!)
Lưu ý rằng bạn thậm chí có thể chạy trình hướng dẫn dựa trên máy chủ SQL2005 để chuyển đổi cơ sở dữ liệu SQL2005 sang SQL2000 (tất nhiên bạn sẽ cần các công cụ 2008 được cài đặt trên máy trạm của mình).
Bạn có thể BCP dữ liệu từ một phiên bản SQL Server sang một phiên bản khác. Đó sẽ là cách nhanh nhất để sao chép dữ liệu từ phiên bản này sang phiên bản khác. Tùy thuộc vào khối lượng dữ liệu, có thể mất nhiều thời gian.
Không có cách nào trực tiếp, mà tôi biết, để hạ cấp DB từ định dạng của năm 2008 xuống năm 2005 không may.
Cách tôi đã làm điều này trong quá khứ (thực tế với các phiên bản cũ hơn của máy chủ SQL, nhưng quá trình sẽ giống nhau) là:
INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table
nếu bạn đã liên kết các trường hợp đó ) Có thể hiệu quả hơn khi chỉ sao chép dữ liệu trước và thêm tất cả các cấu trúc khác (chỉ mục, procs, kích hoạt, ...) sau bước 3. Điều này tránh các vấn đề đặt hàng chèn gây ra bởi các ràng buộc và kích hoạt và xây dựng các chỉ mục tại về mặt lý thuyết nên nhanh hơn việc xây dựng chúng vì tất cả dữ liệu được thêm vào - mặc dù nếu bạn có bất kỳ chỉ mục cụm nào trên các bảng của bạn thì hãy tạo các dữ liệu này trước khi thêm dữ liệu vì chúng sẽ không nhanh hơn để tạo sau khi thực tế.
Tất nhiên, tất cả điều này giả định rằng không có đối tượng nào của bạn sử dụng các tính năng cụ thể của SQL 2008 - nếu có, bạn hy vọng sẽ tìm ra và sửa những thứ đó khi có lỗi khi xây dựng lại lược đồ. Nếu bất kỳ mã nào của bạn phụ thuộc vào hành vi không được xác định chính thức có sự khác nhau giữa các phiên bản SQL Server, bạn có thể có một số lỗi tinh vi và khó nắm bắt hơn để tìm ra và giải quyết sau.
Tôi đã gặp tình huống tương tự và sử dụng Trình hướng dẫn xuất bản cơ sở dữ liệu cho lược đồ và dữ liệu tập lệnh cho SQL Server 2005 từ cơ sở dữ liệu SQL Server 2008.