2013-03-01 99 views
5

Tôi cần chuyển đổi tệp DATABASE.MDF từ SQL Server 2008 sang SQL Server 2012?Làm cách nào để chuyển đổi tệp SQL Server 2008 .mdf thành SQL Server 2012?

Database 'Sales' cannot be upgraded because its non-release version (539) is not supported by this version of SQL Server. You cannot open a database that is incompatible with this version of sqlservr.exe. You must re-create the database.
Could not open new database 'Sales'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 950)

+2

bạn không cần chuyển đổi. Chỉ cần khôi phục nó trực tiếp trên máy chủ sql 2012. –

+0

Cảm ơn bạn thời gian, nhưng tôi có lỗi tiếp theo: Cơ sở dữ liệu 'Bán hàng' không thể được nâng cấp vì phiên bản không phát hành (539) không được hỗ trợ bởi phiên bản này của SQL Server. Bạn không thể mở một cơ sở dữ liệu không tương thích với phiên bản sqlservr.exe này. Bạn phải tạo lại cơ sở dữ liệu. Không thể mở cơ sở dữ liệu mới 'Bán hàng'. CREATE DATABASE bị hủy bỏ. (Microsoft SQL Server, Lỗi: 950) ..................và thành thật mà nói tôi đã tìm thấy một số giải pháp, nhưng không thành công – Andreu

+2

Vui lòng xem cập nhật cho câu trả lời của tôi. Bạn biết có một sự khác biệt lớn giữa SQL Server 2000 và SQL Server 2008. Không mô tả vấn đề của bạn chính xác là một cách hay để có được một loạt các lời khuyên vô dụng và lãng phí thời gian của mọi người trong tiến trình. –

Trả lời

15

Chỉ cần đính kèm và nó sẽ được nâng cấp. Nếu bạn không có file LDF (? Và tại sao bạn không có file LDF), bạn có thể phải sử dụng:

CREATE DATABASE [DatabaseName] ON 
    (FILENAME = N'Drive:\path\file.mdf') 
    FOR ATTACH_REBUILD_LOG; 

Có một số báo trước, tất nhiên ...

  • nhìn thấy khi bạn chỉ có tệp .mdf, bạn có thể có thể đang ở trong một sự thức tỉnh thô lỗ. Nếu tệp không được tách riêng khỏi SQL Server, tệp có thể không được đính kèm lại và bạn sẽ phải quay lại máy chủ nguồn để sao lưu thích hợp (không phải tệp .mdf). Tất cả điều này sẽ phụ thuộc vào nơi bạn có tệp .mdf mà bạn đang cố nâng cấp. Nếu file MDF của bạn không được sạch sẽ tách ra, bạn có thể nhận được lỗi này:

File activation failure. The physical file name "..._log.LDF" may be incorrect.
The log cannot be rebuilt because the database was not cleanly shut down.
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'DatabaseName'. CREATE DATABASE is aborted.

  • nếu cơ sở dữ liệu của bạn là trong 80 chế độ tương thích, nó sẽ được nâng cấp lên 90. Điều này có nghĩa một số mã làm việc có thể đột nhiên phá vỡ, chẳng hạn như *=/=* cú pháp tham gia.
  • nếu cơ sở dữ liệu của bạn> 10GB và bạn thử đính kèm Express (và có thể LocalDB, chưa bao giờ thử điều này), phần đính kèm sẽ không thành công (hoặc có thể đính kèm thành công nhưng sẽ thất bại ở lần tự động đầu tiên? Không kiểm tra điều này) .
  • bạn cũng sẽ gặp sự cố nếu cơ sở dữ liệu của bạn được tạo trên Doanh nghiệp/Nhà phát triển năm 2008 và bạn đã sử dụng các tính năng chỉ có sẵn ở đó và bạn đính kèm cơ sở dữ liệu vào phiên bản Standard hoặc Express ...
  • OK, từ thông báo lỗi của bạn không cố gắng đính kèm một cơ sở dữ liệu năm 2008, mà là một cơ sở dữ liệu 2000. Bạn không thể đính kèm trực tiếp vào SQL Server 2012. Trước tiên, bạn cần đính kèm nó vào bất kỳ phiên bản SQL Server 2005, 2008 hoặc 2008 R2 nào để nâng cấp lên phiên bản đó, sau đó sao lưu và khôi phục nó vào SQL Server 2012.

FWIW, một nhiều, cách nhiều, an toàn hơn nhiều của việc di chuyển một cơ sở dữ liệu từ một trường hợp khác đang sử dụng BACKUP/RESTORE (lý do là nếu sao lưu của bạn thất bại, bạn vẫn có một bản sao của cơ sở dữ liệu - nếu bạn tách một cơ sở dữ liệu, và một cái gì đó sai, bạn không có bản sao nào). Mặc dù một số vấn đề trên vẫn có thể áp dụng ngay cả với cách tiếp cận an toàn hơn này.

+0

cảm ơn thông tin .... và bây giờ .. Không thể mở cơ sở dữ liệu mới 'Bán hàng'. CREATE DATABASE bị hủy bỏ. Msg 950, Cấp 20, Tiểu bang 1, Dòng 1 Không thể nâng cấp 'Bán hàng' Cơ sở dữ liệu vì phiên bản không phát hành (539) không được phiên bản SQL Server này hỗ trợ. Bạn không thể mở một cơ sở dữ liệu không tương thích với phiên bản sqlservr.exe này. Bạn phải tạo lại cơ sở dữ liệu. Cách khắc phục sự cố? – Andreu

+3

Bạn có * đọc cập nhật của tôi *, điểm bullet cuối cùng bắt đầu bằng 'OK' không? Bạn *** không thể đính kèm cơ sở dữ liệu này vào SQL Server 2012 ***. Bạn cần phải đính kèm nó vào 2005, 2008 hoặc 2008 R2 * đầu tiên *, sau đó sao lưu và khôi phục nó vào năm 2012. Dừng thử. Không có phương thức nào khác đang hoạt động - đây là một cách có chủ ý bị chặn bởi SQL Server. –

+0

Cảm ơn, tôi đã giải quyết được vấn đề, chỉ để OK .. Tôi xin lỗi tôi đã thử rất nhiều lựa chọn và có ít thời gian và nhiều áp lực, nhưng tôi sẽ không thực hiện nó nếu không có sự giúp đỡ của bạn Giải pháp: sao lưu/khôi phục – Andreu

2

OP dường như đã bị nhầm lẫn về loại DB của anh ấy. Phiên bản 539 của SQL Server không phải là 2008 nhưng SQL Server 2000. Xem chủ đề này: SQL Server file version number: where can I find a reference?

Tôi đã chạy cùng thông báo lỗi này cố gắng đính kèm/khôi phục SQL Server 2000 db vào phiên bản SQL Server 2012. Có lẽ có một cách xung quanh nó, nhưng những gì tôi đã làm thay vì lần đầu tiên chuyển đổi sang SQL Server 2008 R2, và sau đó đến SQL Server 2012. Điều này thực hiện không có rắc rối.

+0

bạn chuyển đổi nó sang phiên bản 2012. Có công cụ nào không? – yogihosting

+0

Thực ra tôi không nhớ lại nếu tôi đã khôi phục từ .bak hoặc đơn giản là gắn và tách một cơ sở dữ liệu. Tôi đã có cả hai phiên bản 2008R2 và 2012 trên máy tính của mình, vì vậy tôi chỉ đính kèm/khôi phục phiên bản 2008, sau đó tách ra/sao lưu và đính kèm/khôi phục phiên bản 2012. – qianlong

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