Come esportare file mdf su server

venerdì 16 novembre 2007 - 18.01

flytouch Profilo | Junior Member

Salve a tutti, ho costruito un file mdf e stored procedure con sql express 2005, e su questo ho scritto tutto il mio codice e il tutto funziona in locale. Ora nel momento in cui trasferisco il file mdf con il suo file di log, non riesco ad accedere alle stored via codice, infatti l'errore e' impossibile trovare stored procedure etc etc e mi si ferma tutto. L'amministratore del server riesce a visualizzare il mio db con le tabelle pero non vede le stored create. Potete dirmi come posso fare per ovviare a questo problema, o meglio cosa sto sbagliando?
Vi ringrazio anticipatamente.

lbenaglia Profilo | Guru

>Ora nel momento in cui trasferisco
>il file mdf con il suo file di log, non riesco ad accedere alle
>stored via codice, infatti l'errore e' impossibile trovare stored
>procedure etc etc e mi si ferma tutto.

Come hai eseguito questo "trasferimento"?
Ti ricordo che il modo consigliato per effettuare il deploy di un database su una nuova istanza è quello di eseguire un comune FULL BACKUP ed il relativo RESTORE.
In alternativa puoi eseguire il detach del db, copiare tutti i file che lo costituiscono sul server di destinazione (.mdf, .ldf ed eventuali .ndf) ed eseguire l'attach all'istanza.
Quest'ultima operazione può essere svolta anche senza "staccare" il db dall'istanza di origine, a patto di effettuare la copia dei files con il servizio MSSQLServer arrestato.

In tutti i casi se sono state definiti user accounts mappati a login SQL Server, una volta ricreate le login sull'istanza di destinazione occorrerà rieffettuare il binding tramite la stored procedure sp_change_users_login:
http://msdn2.microsoft.com/en-us/library/ms174378.aspx

>L'amministratore del server
>riesce a visualizzare il mio db con le tabelle pero non vede
>le stored create.
La cosa non è possibile
Un utente sysadmin ha potere di vita e di morte sui db presenti nell'istanza
Se non vede le stored procedures significa che non erano presenti nel db di origine.

>Vi ringrazio anticipatamente.
Prego.

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

flytouch Profilo | Junior Member

Grazie Lorenzo per la risposta,
ho esportato il db scollegato, sul server con i file delle stored, e comunque anche se strano :( sul server le sp non sono presenti all'interno; tra l'altro riesco a connettermi perche non ho errori sulla stringa di connessione e durante la fase di utilizzo di una delle sp mi dice che la sp richiesta in quel momento non riesce a raggiungerla.
Molto probabilmente sbaglio io durante la creazione delle stored nel collegarle al db, anche se con il server management studio express creare le sp non e una cosa fantascientifica; secondo te potrebbe essere la differenza di versioni utilizzate, cioe' da un sql express 2005 a un sql 2005 vero e proprio?
Grazie ancora

lbenaglia Profilo | Guru

>ho esportato il db scollegato, sul server con i file delle stored,
>e comunque anche se strano :( sul server le sp non sono presenti
>all'interno;
Cosa intendi con "i file delle stored"?
Le stored procedure come qualunque altro oggetto del database sono presenti all'interno dei files che lo costituiscono (di default risiedono nel Primary Filegroup, ovvero il file .mdf).

>tra l'altro riesco a connettermi perche non ho errori
>sulla stringa di connessione e durante la fase di utilizzo di
>una delle sp mi dice che la sp richiesta in quel momento non
>riesce a raggiungerla.
Riporta il messaggio d'errore preciso con il relativo codice.

>Molto probabilmente sbaglio io durante la creazione delle stored
>nel collegarle al db,
?!!?!?!
Non devi collegare niente
Ascoltami, nel db sorgente hai queste benedette stored procedure?
Se la risposta è affermativa, butta via quel db che hai migrato, fai un full backup di quello di origine e restoralo sull'istanza di destinazione.
Risolvi eventuali utenti orfani con la sp_change_users_login e vivi felice

>secondo te potrebbe essere la differenza di versioni utilizzate, cioe'
>da un sql express 2005 a un sql 2005 vero e proprio?
No, tutte le edizioni di SQL Server (a parità di versione) utilizzano il medesimo formato dei datafile.

>Grazie ancora
Prego.

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

flytouch Profilo | Junior Member

>Cosa intendi con "i file delle stored"?
>Le stored procedure come qualunque altro oggetto del database
>sono presenti all'interno dei files che lo costituiscono (di
>default risiedono nel Primary Filegroup, ovvero il file .mdf).

Anche io penso la stessa cosa, pero me le ha salvate dentro la cartella project, per cui ho pensato di trasportare i file delle stored (con estensione sql) sul server


>
>>tra l'altro riesco a connettermi perche non ho errori
>>sulla stringa di connessione e durante la fase di utilizzo di
>>una delle sp mi dice che la sp richiesta in quel momento non
>>riesce a raggiungerla.
>Riporta il messaggio d'errore preciso con il relativo codice.

Il messaggio d'errore che mi riporta e' questo: Impossibile trovare la stored procedure .....

>
>>Molto probabilmente sbaglio io durante la creazione delle stored
>>nel collegarle al db,
>?!!?!?!
>Non devi collegare niente
>Ascoltami, nel db sorgente hai queste benedette stored procedure?
>Se la risposta è affermativa, butta via quel db che hai migrato,
>fai un full backup di quello di origine e restoralo sull'istanza
>di destinazione.

intendi direttamente sul server?

>Risolvi eventuali utenti orfani con la sp_change_users_login
>e vivi felice
>

Lorenzo grazie per la pazienza

lbenaglia Profilo | Guru

>Anche io penso la stessa cosa, pero me le ha salvate dentro la
>cartella project, per cui ho pensato di trasportare i file delle
>stored (con estensione sql) sul server
Fidati, è così
I files con esensione .sql sul server di destinazione non servono a niente, puoi tenerli in locale come backup.

>Il messaggio d'errore che mi riporta e' questo: Impossibile trovare
>la stored procedure .....
Chi e che cosa lo riporta? Manca il codice...

>>Ascoltami, nel db sorgente hai queste benedette stored procedure?
>>Se la risposta è affermativa, butta via quel db che hai migrato,
>>fai un full backup di quello di origine e restoralo sull'istanza
>>di destinazione.
>
>intendi direttamente sul server?
Il backup lo fai sul tuo PC di lavoro dove risiede il database che vuoi "trasportare" sul server, copi il file .bak sul server ed esegui il restore.

>Lorenzo grazie per la pazienza


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

flytouch Profilo | Junior Member


>
>>Il messaggio d'errore che mi riporta e' questo: Impossibile trovare
>>la stored procedure .....
>Chi e che cosa lo riporta? Manca il codice...
Questo e il codice:

Dim oggi As String
Dim now As DateTime = DateTime.Now
Dim adesso As Integer = now.Hour
oggi = now.ToString("d")

conn = New SqlConnection("Data Source=.\SQLEXPRESS; Initial Catalog=Capello; Integrated Security= SSPI;")
'conn = New SqlConnection("Integrated Security=SSPI;User ID=sa;Data Source=""(local)"";Initial Catalog=Capello;Persist Security Info=False;Workstation ID=""MARV-EL"";Packet Size=4096")
cmdInsert = New SqlCommand("INSINSERZIONE", conn)
cmdInsert.CommandType = CommandType.StoredProcedure 'il command sulla stored
'cmdInsert.Parameters.Add(New SqlParameter("@inserzione", SqlDbType.Int, 4)).Value = Textinserzione.Text
cmdInsert.Parameters.Add(New SqlParameter("@tipo", SqlDbType.VarChar, 15)).Value = rdb.selecteditem.Text
cmdInsert.Parameters.Add(New SqlParameter("@descrizionest", SqlDbType.VarChar, 50)).Value = Textdescrizionest.Text
cmdInsert.Parameters.Add(New SqlParameter("@anticipo", SqlDbType.float)).Value = Textanticipo.Text
cmdInsert.Parameters.Add(New SqlParameter("@rendita", SqlDbType.varchar,50)).Value = Textrendita.Text
cmdInsert.Parameters.Add(New SqlParameter("@nominativo", SqlDbType.VarChar, 20)).Value = Textnominativo.Text
cmdInsert.Parameters.Add(New SqlParameter("@indirizzo", SqlDbType.VarChar, 50)).Value = Textindirizzo.Text
cmdInsert.Parameters.Add(New SqlParameter("@cApInserzione", SqlDbType.VarChar, 5)).Value = Textcapo.Text
cmdInsert.Parameters.Add(New SqlParameter("@comune", SqlDbType.VarChar, 20)).Value = Textcomune.Text
cmdInsert.Parameters.Add(New SqlParameter("@pv", SqlDbType.VarChar, 5)).Value = Textprovincia.Text
cmdInsert.Parameters.Add(New SqlParameter("@regione", SqlDbType.VarChar, 25)).Value = Textregione.Text
cmdInsert.Parameters.Add(New SqlParameter("@EmailInserzione", SqlDbType.VarChar, 50)).Value = Textemail.Text
cmdInsert.Parameters.Add(New SqlParameter("@dtInserzione", SqlDbType.datetime)).value=oggi
cmdInsert.Parameters.Add(New SqlParameter("@telefono", SqlDbType.VarChar, 5)).Value = texttelefono.Text
'cmdInsert.Parameters.Add(New SqlParameter("@des01", SqlDbType.VarChar, 3000)).Value = textnote.Text

Dim p As SqlParameter
p = cmdInsert.Parameters.Add(New SqlParameter("@IDInserzione", SqlDbType.Int, 4))
p.Direction = ParameterDirection.Output

Dim variabile As Integer

Try
conn.Open()
variabile = cmdInsert.ExecuteNonQuery()
Catch exc As Exception
output.InnerHtml = Err.Description & "<br>" & strInsert
Exit Sub
End Try

Dim numeretto As Integer = cmdInsert.Parameters("@IDInserzione").Value.ToString
session("mava")=numeretto


conn.Close()






>>>Ascoltami, nel db sorgente hai queste benedette stored procedure?
>>>Se la risposta è affermativa, butta via quel db che hai migrato,
>>>fai un full backup di quello di origine e restoralo sull'istanza
>>>di destinazione.
Fatto back up e passato all'amministratore del server aspetto notizie poi ti sapro' dire
Grazie di tutto
ciao
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5