Tabela oszczędzania czasu w SQL Server

16

Próbuję dodać kolumnę do tabeli z dużą ilością danych w SQL Server 2005, używając SSMS.

Więc przeglądam tabelę, wybieram Modyfikuj i dodaj nową kolumnę. Następnie, po naciśnięciu przycisku Zapisz, pojawia się następujące ostrzeżenie:

Zapisywanie definicji Zmiany w tabelach z dużą ilością danych mogą zająć dużo czasu. Podczas zapisywania zmian dane tabeli nie będą dostępne

Nie mam nic przeciwko, DB jest offline i mam cały czas na świecie, więc naciskam Tak.

Jednak operacja przechodzi do limitu czasu po około 30 sekundach z tym komunikatem:

Nie można zmodyfikować tabeli. Limit czasu upłynął. Limit czasu upłynął przed zakończeniem operacji lub serwer nie odpowiada.

Następnie, po naciśnięciu OK:

Użytkownik anulowany z okna zapisu (MS Visual Database Tools)

Nie rozumiem tego Ustawiłem limit czasu wykonania na 0 (nieskończony) zarówno w oknie dialogowym połączenia SSMS, jak i w menu Narzędzia -> Opcje -> Wykonanie zapytania -> SQL Server. Jaki jest sens ustawiania limitu czasu wykonania, jeśli jest on po prostu ignorowany?

Czy ktoś wie, jaka jest tutaj wartość limitu czasu i jak ją ustawić?

Tor Haugen
źródło

Odpowiedzi:

27

Brzmi jak ustawienie limitu czasu. Dlatego Twój SSMS uważa, że ​​to trwa zbyt długo, i anuluje połączenie dla Ciebie. Serwer SQL ponownie działa. Ale jest pomoc. Nie jesteś pierwszą osobą, która się z tym spotka.

Zobacz tutaj .

Dla wszystkich, którzy nie chcą klikać linku. Oto zwycięska odpowiedź:

Po dotknięciu tego samego błędu natknąłem się na ustawienie corrent.

W Management Studio z menu Narzędzia wybierz Opcje, a następnie kliknij „Projektanci”. Dostępna jest opcja o nazwie „Zastąp wartość limitu czasu połączenia dla aktualizacji projektanta tabel:” W polu „Limit czasu transakcji po:” zobaczysz magiczne 30 sekund

Peter Schuetze
źródło
6

// ZRÓB NASTĘPUJĄCE:

Otwórz studio zarządzania SQL Server -> Menu Narzędzia -> Opcje -> Karta Projektanci -> Projektant tabeli i bazy danych -> Zwiększ limit czasu z 30 sekund do 65535 sekund. -> OK

// Teraz możesz zapisać zmiany w tabeli. // Mam nadzieję, że to pomaga, i sprawdź mój blog @: //www.ogolla.blogspot.com


źródło
1
Wow, to jest niesamowite ponad 18 godzinny limit czasu. Czas się zdrzemnąć!
Peter Schuetze,
0

SSMS nie powinien być używany do ogólnych modyfikacji danych. Rozgość się z T-SQL i dodaj kolumnę zgodnie z sugestią poniżej.

ALTER TABLE Nazwa tabeli ADD NewColumn INT

SSMS faktycznie tworzy nową tabelę ze wszystkimi kolumnami, importuje dane do nowej tabeli i upuszcza starą tabelę. Nawet jeśli masz cały czas na świecie, jeśli istnieje skuteczny sposób na robienie rzeczy, powinieneś użyć właściwej metody. Aby uniknąć tego bałaganu, w SQL Server 2008 nie zezwala na metodę GUI IIRC.

Sankar Reddy
źródło
3
Rozumiem co masz na myśli. Ale wolę mieć moje kolumny w określonej kolejności. Głupie, możesz pomyśleć, ale oto masz. Za pomocą ALTER TABLE nowa kolumna jest dodawana na końcu. Myślę, że właśnie dlatego SSMS musi upuścić i odtworzyć tabelę.
Tor Haugen