Welcome to Sign in | Help
in Search

Copying table structure and data between databases

Last post 10-22-2009, 10:36 AM by MrSmersh. 5 replies.
Sort Posts: Previous Next
  •  10-21-2009, 9:58 AM 7711

    Copying table structure and data between databases

    Salutare,

    Am de implementat un mecanism generic de copiere a datelor din anumite tabele dintr-o baza de date in alta baza de date (un fel de replicare custom de date, eventual si de structura).

    Componenta (TSQL, .NET sau ce-o fi) ar trebui sa faca urmatoarele:
    1. citeste info despre tabele, indecsi, constrangeri, referinte
    2. calculeaza ordinea de procesare a tabelelor - pentru a nu viola FK
    3. proceseaza tabela cu tabela
      1. genereaza structura (optional - e acceptabila si varianta de copiere doar a datelor)
      2. genereaza scripturi de insert
    Conditii in care se desfasoara acest proces:
    1. componenta e integrata intr-o aplicatie .NET
    2. baza de date sursa si cea target sunt pe acelasi sql server
    3. folosesc Sql Server Express
    4. baza de date target este empty (sau in varianta in care se face doar copierea datelor, exista deja structura)
    5. procesul se lanseaza on-demand si nu isi propune sa faca actualizari de eventuale date preexistente in target, ci simpla copiere (tabelele target sunt goale)
    Stie cineva vreo componenta asemanatoare care sa imi ofere o baza de plecare? N-as vrea sa scriu de la zero Smile

    Din tot felul de motive nu pot folosi mecanismele de replicare SQL Server.

    Multumesc frumos!

    Florin Cardasim
    Filed under:
  •  10-21-2009, 11:07 AM 7712 in reply to 7711

    Re: Copying table structure and data between databases

    Ma jucasem odata cu dbdiff , http://www.codeplex.com/DbDiff, si imi paruse destul de bun
    Incepusem si eu odata asa ceva... dar timpul nu are rabdare...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  10-21-2009, 11:40 AM 7713 in reply to 7712

    Re: Copying table structure and data between databases

    Microsoft syncronization framework nu te ajuta-ai assemblyuri dot net 3.5?
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  10-21-2009, 12:37 PM 7714 in reply to 7711

    Re: Copying table structure and data between databases

    Două idei:
    1. Dacă trebuie să copiezi şi structura tabelelor (cu tot ce înseamnă acest lucru: indecşi unici/clustered/filtered/included, check constraint-uri şi computed columns care pot apela funcţii, funcţii care folosesc view-uri bazate pe alte tabele, etc) eu zic că mai bine copiezi toată baza de date (cu backup/restore) şi apoi goleşti datele din toate tabelele (cu excepţia celor care conţin date de configurare).
    2. Dacă vrei să copiezi toate datele (sau să ştergi toate datele), decât să te chinui să identifici ordinea corectă (şi asta s-ar putea să nu existe, dacă ai FK-uri self-referencing sau ciclice), mai bine dezactivezi toate FK-urile, copiezi toate datele (într-o ordine oarecare) şi activezi din nou FK-urile (ai grijă să îi dai WITH CHECK CHECK, ca să fie trusted).

    Răzvan
  •  10-21-2009, 10:48 PM 7720 in reply to 7714

    Re: Copying table structure and data between databases

    @ignatandrei: verific, multumesc
    @crestinul: la fel, verific, multumesc

    @rsocol:
    Ideea 1 - nu ma ajuta pentru ca baza de date e foarte mare, contine doua categorii de date: config si operationale. Eu vreau sa copiez doar datele de config si vreau sa evit backup/restore care e dureros ca timp
    Ideea 2 - super, nu m-am gandit la asta, scap de o gasca de cod cu ideea asta Smile Thanks!

    Florin Cardasim
  •  10-22-2009, 10:36 AM 7727 in reply to 7720

    Re: Copying table structure and data between databases

    Nu stiu cit ajuta noi citeam structura in un dataset si pe urma executam tot si bagam si datele... Cu datasetu am scapat de problemele de FKs ca faceam 1 tabele si pe urma cream constraints toate. Element complicator facem asta si intre baze de date diferite de ex SQL Server Oracle
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems