Tabella di salvataggio del timeout in SQL Server


16

Sto cercando di aggiungere una colonna a una tabella con molti dati in SQL Server 2005, usando SSMS.

Quindi sfoglio la tabella, seleziono Modifica e aggiungo la nuova colonna. Quindi, quando premo Salva, ricevo il seguente avviso:

Salvataggio delle definizioni Le modifiche alle tabelle con grandi quantità di dati potrebbero richiedere molto tempo. Durante il salvataggio delle modifiche, i dati della tabella non saranno accessibili

Sono d'accordo, il DB è offline e ho tutto il tempo al mondo, quindi premo Sì.

Tuttavia, l'operazione procede quindi al timeout dopo circa 30 secondi con questo messaggio:

Impossibile modificare la tabella. Timeout scaduto. Il periodo di timeout è trascorso prima del completamento dell'operazione o il server non risponde.

Quindi, quando premo OK:

Finestra di dialogo di annullamento del salvataggio annullata dall'utente (MS Visual Database Tools)

Non capisco. Ho impostato il timeout di esecuzione su 0 (infinito) sia nella finestra di dialogo della connessione SSMS sia in Strumenti -> Opzioni -> Esecuzione query -> SQL Server. Qual è il punto di impostare un timeout di esecuzione se viene semplicemente ignorato?

Qualcuno sa quale valore di timeout viene utilizzato qui e come posso impostarlo?

Risposte:


27

Sembra un'impostazione di timeout. Quindi il tuo SSMS pensa che impiega troppo tempo e annulla la connessione per te. I ruoli del server SQL indietro. Ma c'è aiuto. Non sei la prima persona a trovarlo.

Vedi qui .

Per tutti coloro che non vogliono fare clic sul collegamento. Ecco la risposta vincente:

Dopo aver colpito lo stesso errore, mi sono imbattuto nell'impostazione del corrent.

In Management Studio, dal menu Strumenti, selezionare Opzioni, quindi fare clic su "Designer". Esiste un'opzione chiamata "Sostituisci valore di timeout della stringa di connessione per gli aggiornamenti del progettista della tabella:" Nella casella "Timeout della transazione dopo:", vedrai la magia 30 secondi


6

//FARE QUANTO SEGUE:

Apri lo studio di gestione di SQL Server -> Menu Strumenti -> Opzioni -> Scheda Progettisti -> Progettazione tabelle e database -> Aumenta il timeout da 30 secondi a 65535 secondi .--> OK

// Ora puoi salvare le modifiche alla tabella. // Spero che sia d'aiuto, e dai un'occhiata al mio blog @: //www.ogolla.blogspot.com


1
Wow, questa è un'imponente impostazione di timeout di oltre 18 ore. È ora di fare un pisolino!
Peter Schuetze,

0

SSMS non deve essere utilizzato per modifiche generali dei dati. Mettiti comodo con T-SQL e aggiungi la colonna come suggerito di seguito.

ALTER TABLE TableName ADD NewColumn INT

SSMS sta effettivamente creando una nuova tabella con tutte le colonne, importando i dati nella nuova tabella e rilasciando la vecchia tabella. Anche se hai tutto il tempo nel mondo, se esiste un modo efficiente di fare le cose, dovresti usare il metodo giusto. Per evitare questo pasticcio, in SQL Server 2008 non sarà consentito il metodo GUI IIRC.


3
Vedo il tuo punto. Ma preferisco avere le mie colonne in un ordine specifico. Stupido, potresti pensare, ma il gioco è fatto. Utilizzando ALTER TABLE, la nuova colonna viene aggiunta alla fine. Immagino sia per questo che SSMS deve abbandonare e ricreare la tabella, in effetti.
Tor Haugen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.