PDA

View Full Version : [SQL] Allineare due database leggermente diversi


phantom85
21-01-2010, 09:38
Ciao a tutti,

tramite SQL Server 2005 express edition gestisco due database che sono praticamente uguali, fatta eccezione per un paio di tabelle in più presenti nel database A.

Ora vorrei, se possibile, trasferire il contenuto delle tabelle presenti nel database B in quelle del database A in modo che siano popolati con gli stessi records.

Come è possibile farlo?

Se eseguo la procedure restore passando al database A il file di backup del database B mi vengono cancellate le tabelle in più e dunque il database A diventa una copia del database B.

Dunque devo seguire un'altra strada...qualcuno può aiutarmi?

gugoXX
21-01-2010, 15:51
Ciao a tutti,

..cut...

Dunque devo seguire un'altra strada...qualcuno può aiutarmi?

E se fai il contrario?

ybla82
21-01-2010, 16:15
ti propongo due soluzioni:
1)

click destro sul database A e vai su Attività/Importa Dati, o una roba simile.

Ti dovrebbe avviare un wizard che ti permette di scegliere da quali tabelle copiare i dati e dove indirizzarli.

2) metodo fatto a manina.
disabiliti le Identity delle tabelle interessate sul DB A ( se ce ne sono),
poi ti apri un editor delle query
e fai una query di insert



INSERT INTO DB_A.dbo.MyTable
(CampoA, CampoB, CampoC)
SELECT CampoA, CampoB, CampoC
FROM DB_B.dbo.MyTable




In linea di massima dovrebbe funzionare. C'è da aggiungere eventuali procedure o vincoli se vuoi che i dati presenti nelle tabelle vengano mantenuti, cancellati, modificati, etc...

phantom85
21-01-2010, 16:51
E se fai il contrario?

Cioè??

gugoXX
21-01-2010, 16:56
Cioè??

Eh. Ho, ho letto solo dopo che i due DB differiscono tra loro NON solo per le 2 tabelle in questione, ma anche alcuni dati sarebbero diversi.

phantom85
25-01-2010, 14:33
2) metodo fatto a manina.
disabiliti le Identity delle tabelle interessate sul DB A ( se ce ne sono),
poi ti apri un editor delle query
e fai una query di insert



INSERT INTO DB_A.dbo.MyTable
(CampoA, CampoB, CampoC)
SELECT CampoA, CampoB, CampoC
FROM DB_B.dbo.MyTable




In linea di massima dovrebbe funzionare. C'è da aggiungere eventuali procedure o vincoli se vuoi che i dati presenti nelle tabelle vengano mantenuti, cancellati, modificati, etc...


Ciao e grazie per la risposta...

...avendo sql server express non ho l'opzione Import/Export data, dunque credo di dover seguire la tua seconda soluzione.

Mi potresti dire come fare a verificare le identity ed eventualmente disabilitarle?