Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [MSSQL2000] Tabellendeklaration duplizieren (https://www.delphipraxis.net/77151-%5Bmssql2000%5D-tabellendeklaration-duplizieren.html)

Christian Seehase 15. Sep 2006 11:25


[MSSQL2000] Tabellendeklaration duplizieren
 
Moin Zusammen,

ich stehe gerade vor dem Problem, dass ich Tabellen auf einem MS SQL Server 2000 ändern muss.
Da die Tabellen untereinander verknüpft sind, und bei einigen der Primärschlüssel geändert werden muss (Datenformat), möchte ich gerne die Tabellendeklarationen duplizieren (nicht die Inhalte), so dass ich also neue, leere Tabellen habe, die vorerst einmal genauso aufgebaut sind, wie die "Originale", aber einen anderen Namen haben.

Hat dazu jemand einen Tip?
Geht das überhaupt (im Enterprisemanager konnte ich nichts passendes finden)?
Muss ich die Tabellen von Hand anlegen?
Mangels Übung habe ich erst einmal davon Abstand genommen, mir hierfür ein Programm zu schreiben.

mkinzler 15. Sep 2006 11:29

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
Gibt es im Enterprise-manager eine Funktion zum Anzeigen der Metadaten? Diese könnte man ja verwenden um die neue Tabellen zu erzeugen.

Phoenix 15. Sep 2006 11:34

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
Im Enterprise Manager kann man sich den SQLText der entsprechenden Tabelle anzeigen lassen bzw. auch nur die Struktur der Tabelle(n) zu dumpen (ohen Daten).

In dem resultierenden SQL-File kannst Du dann hergehen und die Namen der Tabellen ändern und das wieder einspielen. Sollte recht einfach sein -> Wuppdi hast Du Deine neuen Tabellen.

Wenn der normale Enterprise Manager das nicht kann hol Dir das kostenlose SQL Server Management Studio Express. Das kann das auf jeden Fall.

Christian Seehase 15. Sep 2006 12:35

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
Moin Sebastian,

super, danke :thumb:
Inzwischen habe ich sogar raus, dass man sich die über den Query Analyzer auch erzeugen kann :wall:

Da kann man dann sogar noch mehr Optionen für die Erstellung des Scriptes konfigurieren.

generic 15. Sep 2006 12:36

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
es gibt sogar noch eine 3. möglichkeit.
im enterprisemanger einfach in der tabellenansicht "kopieren"-drücken z.b. via shortcut.
dann wird ein create statement zu der tabelle in der zwischenablage abgelegt.

alternativ kann man auch scripte generieren lassen.

Christian Seehase 15. Sep 2006 18:17

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
Moin Generic,

danke für den Tip.

Ich habe es jetzt mit Hilfe des Query-Analyzers gelöst, da man hier noch diverses konfigurieren kann.
Für mich war es nützlich, auf diesem Wege die Abfrage so zu generieren, dass die Tabelle nur erstellt wird, wenn sie noch nicht existierte, und vor allem, dass die Berechtigungen und Verknüpfungen mit erstellt werden, denn die neuen Tabellen sollen die alten komplett ersetzen.

Zitat:

Zitat von generic
alternativ kann man auch scripte generieren lassen.

Meintest Du jetzt einen bislang noch nicht genannten Weg?

marabu 15. Sep 2006 18:22

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
Hallo Chris,

gemeint ist vermutlich der Menüeintrag "Script erstellen ..." aus dem Kontextmenü der Datenbank, Untermenü "Alle Tasks". Das dürfte sich mit deinem Ansatz vom Ergebnis her decken.

Grüße vom marabu

Christian Seehase 15. Sep 2006 19:00

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
Moin Marabu,

danke, damit hatte ich es auch schon probiert, allerdings finde ich die Einstellmöglichkeiten im Query-Analyzer eingängiger.
Aber da ich mit diesen Dinge eh' gerade erst anfange, muss ich mich da sowieso noch einarbeiten.

generic 16. Sep 2006 03:45

Re: [MSSQL2000] Tabellendeklaration duplizieren
 
meine best praktice:
enterprise mangager: design der db mit dem diagrammen, scripte erzeuge und backup funktionen.
queryanalyser: queries optimieren mit dem profiler und index-assistenten, daten selektieren und dann weiterverarbeiten z.b. in excel.

zu oben - ja ich meinte das contextmenu "alle tasks"


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz