Timeout-Speichertabelle in SQL Server

16

Ich versuche, einer Tabelle mit vielen Daten in SQL Server 2005 mithilfe von SSMS eine Spalte hinzuzufügen.

Also gehe ich zur Tabelle, wähle Ändern und füge die neue Spalte hinzu. Wenn ich dann auf Speichern drücke, wird folgende Warnung angezeigt:

Speichern von Definitionen Änderungen an Tabellen mit großen Datenmengen können viel Zeit in Anspruch nehmen. Während Änderungen gespeichert werden, kann nicht auf Tabellendaten zugegriffen werden

Ich bin damit einverstanden, die DB ist offline und ich habe die ganze Zeit auf der Welt, also drücke ich Ja.

Die Operation läuft jedoch nach etwa 30 Sekunden mit der folgenden Meldung ab:

Tabelle kann nicht geändert werden. Zeitüberschreitung. Das Zeitlimit, das vor Abschluss des Vorgangs verstrichen ist, oder der Server reagiert nicht.

Wenn ich dann OK drücke:

Benutzer hat den Speicherdialog abgebrochen (MS Visual Database Tools)

Ich verstehe das nicht. Ich habe das Ausführungszeitlimit sowohl im SSMS-Verbindungsdialog als auch unter Extras -> Optionen -> Abfrageausführung -> SQL Server auf 0 (unendlich) gesetzt. Was bringt es, ein Ausführungszeitlimit festzulegen, wenn es nur ignoriert wird?

Weiß jemand, welcher Timeout-Wert hier verwendet wird und wie ich ihn einstellen kann?

Tor Haugen
quelle

Antworten:

27

Klingt nach einer Timeout-Einstellung. Ihr SSMS ist der Meinung, dass dies zu lange dauert, und bricht die Verbindung für Sie ab. Die SQL Server-Rollen zurück. Aber es gibt Hilfe. Sie sind nicht die erste Person, der dies begegnet.

Sehen Sie hier .

Für alle, die nicht auf den Link klicken möchten. Hier ist die preisgekrönte Antwort:

Nachdem ich den gleichen Fehler gefunden hatte, stolperte ich über die entsprechende Einstellung.

Wählen Sie im Management Studio im Menü Extras die Option Optionen und klicken Sie auf "Designer". Es gibt eine Option namens "Timeout-Wert für Verbindungszeichenfolge für Tabellen-Designer-Aktualisierungen überschreiben": Im Feld "Timeout für Transaktion nach:" sehen Sie die magischen 30 Sekunden

Peter Schütze
quelle
6

//MACH FOLGENDES:

Öffnen Sie SQL Server Management Studio -> Menü Extras -> Optionen -> Registerkarte Designer -> Tabellen- und Datenbank-Designer -> Erhöhen Sie das Zeitlimit von 30 Sekunden auf 65535 Sekunden. -> OK

// Jetzt können Sie Ihre Tabellenänderungen speichern. // Hoffe das hilft und schau in meinem Blog unter http://www.ogolla.blogspot.com nach


quelle
1
Wow, das ist eine unglaubliche Zeitüberschreitung von mehr als 18 Stunden. Zeit für ein Nickerchen!
Peter Schuetze
0

SSMS sollte nicht für allgemeine Datenänderungen verwendet werden. Machen Sie sich mit T-SQL vertraut und fügen Sie die unten vorgeschlagene Spalte hinzu.

ALTER TABLE Tabellenname ADD NewColumn INT

SSMS erstellt tatsächlich eine neue Tabelle mit allen Spalten, importiert Daten in die neue Tabelle und löscht die alte Tabelle. Selbst wenn Sie die ganze Zeit auf der Welt haben, sollten Sie die richtige Methode anwenden, wenn es eine effiziente Möglichkeit gibt, Dinge zu tun. Um dieses Durcheinander zu vermeiden, wird in SQL Server 2008 die GUI-Methode IIRC nicht zugelassen.

Sankar Reddy
quelle
3
Ich verstehe dein Argument. Ich bevorzuge es jedoch, meine Spalten in einer bestimmten Reihenfolge zu haben. Dumm, könnte man meinen, aber da hast du es. Mit ALTER TABLE wird die neue Spalte am Ende hinzugefügt. Ich denke, deshalb muss SSMS die Tabelle löschen und neu erstellen.
Tor Haugen