Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Come esportare file mdf su server
venerdì 16 novembre 2007 - 18.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
flytouch
Profilo
| Junior Member
87
messaggi | Data Invio:
ven 16 nov 2007 - 18:01
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
5.625
messaggi | Data Invio:
ven 16 nov 2007 - 20:27
>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
87
messaggi | Data Invio:
sab 17 nov 2007 - 10:31
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
5.625
messaggi | Data Invio:
sab 17 nov 2007 - 10:44
>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
87
messaggi | Data Invio:
sab 17 nov 2007 - 11:15
>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
5.625
messaggi | Data Invio:
sab 17 nov 2007 - 11:18
>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
87
messaggi | Data Invio:
lun 19 nov 2007 - 08:52
>
>>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
Torna su
Stanze Forum
Elenco Threads
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 !