Newsgroup: it.comp.software.database
Titolo: [SQL2000] Allineamento database

Nessuno conosce una applicazione in grado di allineare due database sql
server (sia tabelle, che viste, che s.p., che trigger) ?
Va bene anche un sorgente di esempio  (magari in VB).
Grazie in anticipo !
Zanza_ra

 server (sia tabelle, che viste, che s.p., che trigger) ?
Non fai prima a fare un backup da una parte ed un restore dall'altra ?
Davide

> Non fai prima a fare un backup da una parte ed un restore dall'altra ?
intendevo di struttra tabelle, indici, ecc.ecc. , non dei dati
Zanza_ra


Un metodo piů immediato č quello di creare uno script completo del database,
lanciare lo script e poi allineare le tabelle con un DTS.

 lanciare lo script e poi allineare le tabelle con un DTS.
Grazie per la soluzione che è comunque interessante anche se non
completamente soddisfacente perchè la situazione è questa:
Sul mio portatile ho il database di sviluppo con la struttura aggiornata,
vado dal cliente con lo scopo di aggiornare i suoi programmmi (copia e
incolla :-) ) e il suo database; per esempio l'obiettivo è di upgradare il
database PIPPO, lancio sul server del cliente lo script preparato sul mio
portatile che mi crea il database PLUTO vuoto, ma con la sctruttura
corretta, a questo punto lancio la copia dei dati da datbase a database e
alla fine cancello PIPPO e rinomino PLUTO in PIPPO, però questo implica che
devo avere lo spazio per due database oltre ad impiegare molto tempo per
l'operazione (e non so se la copiatura di dati tra due tabelle con struttura
che potrebbe essere differente è una cosa semplice).
Zanza_ra

 che potrebbe essere differente è una cosa semplice).
:))))
Adesso e` piu` chiaro
imho, una soluzione che ti risolverebbe tutti i problemi e` quella di fare
una replicazione con una snapshot iniziale, il database "da copiare" farebbe
da distributor e pubblication database e il database di destinazione il tuo
subscriber, ricordandoti di specificare di inizializzare lo schema ed i dati
in fase di creazione della replicazione. Questo metodo ti permetterebbe di
allineare completamente struttura e dati (eliminandoti anche il problema
della copiatura dei dati tra due tabelle con struttura diversa), l`unica
cosa che la snapshot non
ti allinea sono i trigger (sinceramente non so come si comportano le view
nella replicazione) , ma questo puoi farlo semplicemente generando da
un lato e lanciando dall`altro lo script dei soli trigger (ed eventualmente
nello stesso script anche le view).
Non so se ti sono stata di aiuto ... se non altro ci ho provato. :)
Frilla

 ...
Scusa, non sono molto esperto di SQL2000 (sto muovendo solo ora i primi
passi arrivando da un SQL sostanzialmente diverso) e ho fatto fatica a
comprendere la tua risposta, ma dal poco che ho intuito mi pare che seguendo
la strada che tu indichi sul database del cliente mi perdo i dati: sul
database del cliente devo avere aggiornata solo la struttura, non anche i
dati che ho sul database del portatile.
Zanza_ra

dati che ho sul database del portatile.
Per la tua esigenza, l`unica, imho,soluzione che vedo e` la seguente:
dovresti copiare con un dts
tutti i contenuti della vecchia struttura  nella nuova(anche perche` il
dts ti permette di mappare i
campi delle tabelle sorgente nei campi delle tabelle di destinazione,
fondamentale per poter
effettuare la copia tra tabelle con struttura diversa), droppare la
vecchia e a quel punto ricopiare
il database (struttura e dati) sulla destinazione e per far questo ti
consiglierei comunque di
creare uno script completo per la struttura e poi effettuare un dts dei
dati. E` un po` macchinoso
come procedimento, ma oltre ad essere una soluzione, offre anche la
sicurezza di avere comunque
sotto controllo i dati che devono essere preservati.
Frilla
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

dati che ho sul database del portatile.
Per la tua esigenza, l`unica, imho,soluzione che vedo e` la seguente:


 ...
Esatto, è macchinoso, richiede tempo da parte di una persona competente, si
corre il rischio di sbagliare (e di perdere i dati del cliente).
inoltre richiede di sapere esattamente quali sono le modifiche da fare.
A questo punto permettetemi una piccola polemica: il problema da me
enunciato dovrebbe essere un problema comune ai programmatori che si
occupano di database, cioè il mantenimento della struttura dei database dei
clienti allineata con il database di sviluppo, soprattutto quando si tratta
di un prodotto rivolto a più clienti e sviluppato da più programmatori;
lavorando in altri ambienti diversi da SQL server avevo sempre avuto a
disposizione pacchetti per ottenere lo scopo indicato (vuoi messo a
disposizione dal produttore del db, vuoi di terze parti, vuoi sviluppati
dalla s.h. stessa), passsando a SQL server e contando sull'enorme massa di
programmatori che hanno a che fare con questo prodotto, pensavo di trovare
uno strumento analogo, o almeno delle indicazioni su come risolvere il
problema o a che prodotto commerciale rivolgermi.
Invece ho trovato qualche aiuto e non proprio mirato al mio problema, che
peraltro dovrebbe essere abbastanza comune a chi sviluppa software per
professione (è impensabile sviluppare un prodotto per un solo cliente e in
più sperare di non dover mai più dover variare la struttura del database
dopo la prima installazione).
Comunque grazie grazie dell'interessamento al mio problema,
per la cronaca il problema lo sto risolvendo con una applicazioncina in VB
che utilizza le sysobject e si appoggia sull'oggetto SQLDMO (scusate, ma uso
da poco SQL server e da pochissimo ho scoperto quest'ultima funzionalità
utilissima per il mio problema).
Saluti e grazie,
Zanza_ra