2012-04-10 26 views
16

Ho un backup dal database in SQL Server 2008 R2. Quando si desidera ripristinare questo backup su SQL Server, viene visualizzato questo errore: "Errore: il cast specificato non è valido. (SqlManagerUI)" Come risolvere questo errore? Grazie.Errore: il cast specificato non è valido. (SqlManagerUI)

+0

CON MOVIMENTO ' 'YourMDFLogicalName' a 'D: \ DataYourMDFFile.mdf',' -adjust percorso SPOSTA ' 'YourLDFLogicalName' a 'D: \ DataYourLDFFile.ldf'' mdf ldf –

risposta

12

Ci sono alcuni funnies che ripristinano i vecchi database in SQL 2008 tramite il ragazzo; hai provato a farlo tramite TSQL?

Use Master 
Go 
RESTORE DATABASE YourDB 
FROM DISK = 'C:\YourBackUpFile.bak' 
WITH MOVE 'YourMDFLogicalName' TO 'D:\Data\YourMDFFile.mdf',--check and adjust path 
MOVE 'YourLDFLogicalName' TO 'D:\Data\YourLDFFile.ldf' 
+2

ciò che è YourLDFLogicalName? – coure2011

+0

Il nome del file in SQL Server. In Management STudio; aprire una query; usa il database su cui stai lavorando esegui il backup seleziona Nome dai file sys e la colonna Nome. – u07ch

+1

Per i noobs come me. Il commento di u07ch è corretto ma contiene un errore di battitura nella query: select name from sysfiles –

17

Questo sarebbe anche accadere quando si sta cercando di ripristinare un backup versione più recente in un database SQL più vecchio. Ad esempio, quando si tenta di ripristinare un backup del database creato nel 2012 con compatibilità 110 e si sta tentando di ripristinarlo nel 2008 R2.

+1

Hai una soluzione per questo? –

4

A volte succede a causa della modifica della versione come store 2012 db on 2008, quindi come controllarlo?

RESTORE VERIFYONLY FROM DISK = N'd:\yourbackup.bak' 

se dà errore come:

Msg 3241, livello 16, stato 13, riga 2 Il gruppo di supporti nella periferica 'd: \ alibaba.bak' è formato in modo non corretto. SQL Server non può elaborare questa famiglia di supporti. Messaggio 3013, livello 16, stato 1, riga 2 VERIFY DATABASE sta terminando in modo anomalo.

Verificare ulteriormente:

RESTORE HEADERONLY FROM DISK = N'd:\yourbackup.bak' 

BackupName è "* * INCOMPLETE", posizione è "1", altri campi sono "NULL".

Significa che il backup è corrotto o è stato prelevato dalla versione più recente.

0

ho avuto un errore simile "Cast specificato non è valido" il ripristino da SQL Server 2012 a SQL Server 2008 R2

In primo luogo ho ottenuto il MDF e Nomi LDF:

RESTORE FILELISTONLY 
FROM DISK = N'C:\Users\dell laptop\DotNetSandBox\DBBackups\Davincis3.bak' 
GO 

In secondo luogo ho ripristinato con uno SPOSTA usando quei nomi tornati:

RESTORE DATABASE Davincis3 
FROM DISK = 'C:\Users\dell laptop\DotNetSandBox\DBBackups\Davincis3.bak' 
WITH 
    MOVE 'JQueryExampleDb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Davincis3.mdf', 
    MOVE 'JQueryExampleDB_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Davincis3.ldf', 
REPLACE 
GO 

non ho alcun indizio per quanto riguarda il nome di "JQueryExampleDb", ma questo ha funzionato per me.

Tuttavia, i backup (e i database) non sono retrocompatibili con le versioni precedenti.

Problemi correlati