Inserimento dati in SQL server 2005 da .MDF

domenica 28 giugno 2009 - 16.59

ilfurla Profilo | Newbie

Ciao a tutti,
ho installato (non senza difficoltà a causa delle protezioni di Vista) SQL Server Management Studio Express.
Vorrei installare un database contenuto in un file .MDF in modo da poterlo gestire con SSMS.
Ho già creato un'istanza nella quale inserire il mio database (PC-MARCO\SQLEXPRESS). Tale istanza contiene i database di sistema ed altro.
Ora però vorrei inserire il mio .MDF

Qualcuno può dirmi cosa devo fare?
Grazie

lbenaglia Profilo | Guru

>Vorrei installare un database contenuto in un file .MDF in modo
>da poterlo gestire con SSMS.
>Ho già creato un'istanza nella quale inserire il mio database
>(PC-MARCO\SQLEXPRESS). Tale istanza contiene i database di sistema
>ed altro.
>Ora però vorrei inserire il mio .MDF
>
>Qualcuno può dirmi cosa devo fare?

Ciao Marco,

Iniziamo col dire che in SQL Server un database è sempre costituito da almeno due files: il master data file (.mdf) contenente i metadati ed eventualmente i dati ed il transaction log (.ldf).
Per poter collegare il db ad una istanza occorre eseguire il detach del db dall'istanza di origine, copiare entrambi i files sul pc che ospita l'istanza di destinazione ed eseguirne l'attach.
Questa operazione può essere eseguita sia graficamente da SSMS che con il comando T-SQL CREATE DATABASE...FOR ATTACH.
Il tutto è descritto in modo esauriente in questo paragrafo dei Books Online:
http://msdn.microsoft.com/en-us/library/ms190794.aspx

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ilfurla Profilo | Newbie

Grazie per la risposta Lorenzo.
Innanzi tutto io ho solo un file (.MDF) non ho il file di log (.LDF). Spero che questo non crei problemi.
Ho comunque provato a fare l'attach da SSMS, ma mi appare il seguente errore: Errore del sistema operativo 5: "5(Accesso negato)"
Ho avuto lo stesso problema con l'installazione di SSMS che ho risolto lanciando il programma di installazione da DOS (entrando come amministratore), ma qui non so bene come fare. Io sono l'unico utente di questa macchina e credo di essere amministratore.

lbenaglia Profilo | Guru

>Innanzi tutto io ho solo un file (.MDF) non ho il file di log
>(.LDF). Spero che questo non crei problemi.
Probabilmente i problemi li avrai (se il file mdf non è stato copiato a seguito di un corretto shutdown dell'istanza)
L'unico tentativo che puoi fare è quello di eseguire la rebuild del log specificando il parametro ATTACH_REBUILD_LOG nel comando CREATE DATABASE.

>Ho comunque provato a fare l'attach da SSMS, ma mi appare il
>seguente errore: Errore del sistema operativo 5: "5(Accesso negato)"
Dove hai copiato il file .mdf?
Mettilo nella directory Data dove risiedono anche i files relativi agli altri database e solo successivamente prova ad eseguirne l'attach.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ilfurla Profilo | Newbie

ho spostato il file .mdf nella directory data come mi hai consigliato ed in effetti l'errore 5 di accesso negato non me lo da più
ora però mi sta creando problemi la mancanza del file .ldf
appena riesco provo con ad utilizzare la create database con il parametro ATTACH_REBUILD_LOG e poi ti faccio sapere
per intanto grazie
ciao

ilfurla Profilo | Newbie

Ciao a tutti,
purtroppo il REBUILD_LOG non è andato a buon fine. Le mie istruzioni sono:

CREATE DATABASE prova ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\AdoStepByStep_Data.mdf') FOR ATTACH_REBUILD_LOG

mentre l'errore restituitomi è:

Errore di attivazione del file. Il nome di file fisico "C:\Database\AdoStepByStep_log.LDF" potrebbe non essere corretto.
Impossibile ricreare il log se il file primario è di sola lettura.
Messaggio 1813, livello 16, stato 2, riga 1
Impossibile aprire il nuovo database 'prova'. L'istruzione CREATE DATABASE è stata interrotta.

Secondo me l'inghippo sta in quel "il file primario è di sola lettura", ma non so come renderlo di tipo R/W. o sono fuori strada?

lbenaglia Profilo | Guru

>Secondo me l'inghippo sta in quel "il file primario è di sola
>lettura", ma non so come renderlo di tipo R/W. o sono fuori strada?

Sei fuori strada
Come ti dicevo prima se non hai eseguito il detach del db o arrestato l'istanza, il db si trova in uno stato inconsistente, quindi non puoi ricollegare l'mdf ricreando il t-log.
Che ti serva come lezione per il futuro: il metodo più semplice per eseguire copie di un db è quello di effettuare un banalissimo full backup.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ilfurla Profilo | Newbie

Quindi non ho alcuna speranza di collegare questo MDF e vedere i dati?

lbenaglia Profilo | Guru

>Quindi non ho alcuna speranza di collegare questo MDF e vedere
>i dati?
Potresti creare C:\Database, assegnarvi le permission di full control all'account utilizzato per eseguire il servizio di SQL Server, copiarvi l'.mdf ed eseguire la CRATE DATABASE...FOR ATTACH_REBUILD_LOG.
Non ti assicuro che funzioni.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5