Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

SqlServer7 wie benenne ich eine Datenbank um?





Frage

Hallo Leute, wer weiß warum ich eine bestimmte Datenbank (St.Thomas) nicht exportieren kann? liegt es vielleicht an dem Namen weil ein Punkt dazwischen liegt? Und wenns an dem liegt wie kann ich die Datenbank umbenennen? do gehts nicht:"Create Procedure sp_renamedb [@old_name=]'St.Thomas', [@new_name=]'neuerName' return 0" Vielleicht kann mir ja jemand helfen? Danke im voraus. MfG Rob

Antwort 1 von MixMax

wenn du zugriff auf den SQLManager hast ... Datenbank Markieren, F2 drücken ;-)

aber sonst sehe ich da schwarz da eine sqlabfrage den punkt interpretiert als Datenbank.Tabelle
du machst es über eine vbs-datei ?
ein besser funktionierendes script zum umbenennen kann ich leider nicht aus dem stehgreif geben.

Antwort 2 von PotzBlitz

Hallo rob,

beim SQL Server sind die Clienttools und damit auch der Enterprise Manager enthalten. Versuche damit die Datenbank umzubenennen.

Vor einiger Zeit hatten wir mal mit einer Testdatenbank rumgespielt, die hatte ebenfalls einen Punkt drin. Da sie nicht wichtig war, haben wir sie schlicht und einfach gelöscht. Ich muss aber dazu sagen, dass wir keinen Versuch mit dem Enterprise Manager gemacht haben, aber ich denke, einen Versuch ist es allemal wert.

Ach, noch etwas. Packe mal den Datenbanknamen in eckige Klammern [St.Thomas] und probier es nochmal mit der Stored Procedure.

Gruss
PotzBlitz

Antwort 3 von MixMax

was hat es mit der Eckigen klammer auf sich ? war am überlegen ob ich auch was dazu schreibe, da ich es in den Supportnetscripten auch schon so gesehen habe, aber da ich nicht sagen kann was eckige klammern in den fall nun genau für ein unterschied machen (was wird alles bei eckigen klammern ermöglicht) wollte ich nicht spekulieren.

Antwort 4 von PotzBlitz

Hallo MixMax,

die eckigen Klammern sorgen dafür, dass ein prinzipiell unzulässiger Name trotzdem verwendet werden kann. Wenn du beispielsweise in Access ein Tabellenfeld namens "Mein Feld" hast und willst es in SQL ansprechen:

SELECT Mein Feld FROM Tabelle1;

... dann wird das nicht funktionieren. Nur mit eckigen Klammern kannst du deinen Computer davon überzeugen, dass "Mein Feld" ein kompletter Name ist:

SELECT [Mein Feld] FROM Tabelle1;

Auf diese Weise müsste auch der SQL-Server davon überzeugt werden können, dass [St.Thomas] ein vollständiger, und mit ein bisschen nachhelfen, auch gültiger Name ist. Auch wenn man dank eckiger Klammern viele Namen wieder auf den rechten Weg bringen kann, sollte man versuchen, solche Probleme von Anfang an zu vermeiden, indem man nur einen minimalen Zeichensatz bei der Objektbenennung verwendet. Ideal sind hier Buchstaben, Zahlen und vielleicht auch der Unterstrich, falls nötig. Alles andere ist nur Ballast, der unnötig mitgeschleift werden muss.

Witzigerweise haben sich die eckigen Klammern seit Access 2.0 in mir sogar festgefressen, wie in diesem Beispiel:

Text1= DCount("[DerPrimaerschluessel]", "Tabelle1", "[Ort]='Berlin')

Ich weiss sehr wohl, dass hier die Klammern überflüssig sind, denn die verwendeten Namen sind völlig in Ordnung. Bevor ich die aber weglasse, verstaubt Access 2010 im Keller. :-)

Gruss
PotzBlitz

Antwort 5 von MixMax

Danke für die ausführliche beschreibung, etwas in der art hatte ich schon im Sinn.

Wäre vielleicht toll wen rob mal sagt obs funktioniert.