>Prima domanda: volevo passare un domani, con calma alla versione
>2008 Express.
>Esiste una procedura da seguire? Oppure basta installare il 2008Exp
>e poi importare il backup del database 2005?
Oltre a quanto già esposto da Marcello e David, ricordati che dopo aver eseguito l'attach/restore devi ricostruire gli indici, riaggiornare le statistiche in modalità full scan ed assegnare un nuovo owner al db.
>Seconda domanda: Sempre in ottica di migrazione, oltre ovviamente
>al DB dove ho i miei dati, va esportato anche "qualcosa" dei
>database di sistema (master, model, msdb, tempdb), oppure non
>è necessario?
Dato che utilizzi l'Express Edition non hai job né SSIS packages da migrare, ma restano sempre le login!
Per migrarle leggi attentamente questo articolo della Knowledge Base:
http://support.microsoft.com/kb/918992/en-us
>Terza domanda: Nelle impostazioni del mio Database ho come autenticazione
>Server: "Autenticazione di SQL Server e di Windows", questo significa
>che è possibile accedere al database o con un utente configurato
>nel windows(XP) nel quale gira SQL oppure anche con un utente
>esterno purchè sia configurato e creato come utente nel database.
>Naturalmente, un utente che accede al database mediante una webform,
>si presenta al mio DB come utente ASPNET e non ovviamente come
>quello del suo pc. SE -se- le cose che ho scritto fino a qui
>son corrette, la domanda è: dato che gli utenti sono oggetti
>del singolo db all'interno dell'istanza, esportando il DB esporto
>anche quelli, è corretto?
No.
In SQL Server esistono 2 tipologie di "utenti": le Login e gli User Accounts.
Le login (definite a livello di istanza) sono utilizzate per eseguire l'autenticazione all'istanza, quindi servono per accedere a SQL Server.
Gli User Accounts (a livello di database) sono mappati ad una login e definiscono le permission che ha un utente sugli oggetti presenti nel db.
Quando esegui l'attach o il restore di un db su una nuova istanza, ti porti dietro automaticamente gli User Accounts (in quanto presenti nella tabella di sistema sys.sysusers del db) e le relative permission sugli oggetti ma perdi l'associazione con le corrispettive Logins (anche se presenti con stesso nome e password nell'istanza di destinazione) dato che il Secure ID (SID) sarà differente (a meno di averle esportate ed importate mantenendo il SID originario).
Per ricreare l'associazione puoi utilizzare il comando:
CREATE USER user_name
FOR LOGIN login_name;
>Quarta domanda: Nel DB ho 1 istanza, nell'istanza ho 2 DB: DB_A
>e DB_B.
>Nei vari DB ci sono alcune tabelle [ ma và? :-) ] quindi mettiamo
>caso che voglia esportare una tabella dal primo DB al secondo
>DB.
>
>Caso A) Tabella è standAlone ossia non ha FK con nessuna altra
>tabella del sistema.
>Che tecnica posso usare per esportare questa tabella? Con il
>menù attività, posso creare la struttura della tabella semplicemente
>generando lo script di CREATE TABLE, ma per quanto riguarda i
>dati?
>Come posso fare un dump e poi un import?
Se le righe non sono molte, da SSMS puoi generare oltre alla struttura della tabella anche i comandi di INSERT delle singole righe, diversamente puoi affidarti all'utility command line bcp.exe per esportare su file di testo i dati ed eseguire l'operazione inversa per reimportarli sull'istanza di destinazione.
>Caso B) Tabella con FK es: la tabella A ha una FK su B, cosa
>si fà in questo caso? :-)
La stessa identica cosa, avendo cura di ricreare e popolare per prima la tabella dalla parte 1 della relationship.
>Grazie davvero!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org