risposta-alla-domanda-sullo-sviluppo-web-bd.com

Salvataggio delle modifiche dopo la modifica della tabella in SQL Server Management Studio

Se voglio salvare qualsiasi modifica in una tabella, precedentemente salvata in SQL Server Management Studio (nessun dato presente nella tabella), ricevo un messaggio di errore:

Il salvataggio delle modifiche non è permesso. Le modifiche apportate richiedono che le seguenti tabelle vengano eliminate e ricreate. Hai apportato modifiche a una tabella che non può essere ricreata o attivata l'opzione Impedisci il salvataggio delle modifiche che richiedono la creazione della tabella.

Cosa può impedire di modificare facilmente la tabella? Oppure, è il modo usuale per SQL Server Management Studio di richiedere la creazione di una tabella per la modifica? Che cos'è - questa opzione "Impedisci il salvataggio delle modifiche" ?

235
rem

Vai in Strumenti -> Opzioni -> Designer-> Deseleziona "Impedisci il salvataggio delle modifiche che richiedono la ricreazione della tabella". Ecco.

Ciò accade perché a volte è necessario eliminare e ricreare un tavolo per cambiare qualcosa. Questo può richiedere del tempo, poiché tutti i dati devono essere copiati in una tabella temporanea e quindi reinseriti nella nuova tabella. Poiché SQL Server di default non si fida di te, devi dire "OK, so cosa sto facendo, ora lasciami fare il mio lavoro".

522
Pedro

Strumenti> Opzioni

enter image description here

Deseleziona sopra l'opzione

107
Prasanna

Per ovviare a questo problema, utilizzare le istruzioni SQL per apportare le modifiche alla struttura dei metadati di una tabella.

Questo problema si verifica quando è abilitata l'opzione "Impedisci il salvataggio delle modifiche che richiedono la ricomposizione della tabella" .

Origine: Messaggio di errore quando si tenta di salvare una tabella in SQL Server 2008: "Salvataggio delle modifiche non è consentito"

71
Daniel Vassallo

Invece di deselezionare la casella (una soluzione scadente), è necessario FERMARE la modifica dei dati in questo modo. Se i dati devono essere cambiati, fallo con uno script, in modo che tu possa facilmente portarlo in produzione e in modo che sia sotto il controllo del codice sorgente. Ciò semplifica anche l'aggiornamento delle modifiche di test dopo che la produzione è stata spostata verso il basso per consentire agli sviluppatori di lavorare con dati più freschi.

15
HLGEM

Vai a SSMS e prova questo

Menu >> Strumenti >> Opzioni >> Designer >> Deseleziona "Impedisci il salvataggio delle modifiche che richiedono la ricreazione della tabella".

Ecco una spiegazione molto buona su questo: http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes- a-non-permesso-the-cambiamenti-si-sono-made-richiede-the-following-tabelle-to-be-caduto-e-ri-creato-you-have-sia-fare-cambiamenti-to-a- scheda/

14
Rolwin C

Molte modifiche che è possibile apportare molto facilmente e visivamente nell'editor di tabelle in SQL Server Management Studio richiedono effettivamente SSMS per rilasciare la tabella in background e ricrearla da zero. Anche le cose semplici come riordinare le colonne non possono essere espresse nell'istruzione SQL DDL standard: tutto ciò che SSMS può fare è eliminare e ricreare la tabella.

Questa operazione può essere molto dispendiosa in termini di tempo su una grande tabella, oppure b) potrebbe anche fallire per vari motivi (come i vincoli FK e roba del genere). Pertanto, SSMS in SQL Server 2008 ha introdotto questa nuova opzione che le altre risposte hanno già identificato.

All'inizio, potrebbe sembrare controintuitivo prevenire tali cambiamenti - ed è certamente una seccatura su un server di sviluppo. Ma su un server di produzione, questa opzione e il suo valore predefinito di impedire tali modifiche diventa un potenziale salvavita!

14
marc_s

Questo è un rischio per disattivare questa opzione. Puoi perdere le modifiche se hai attivato il rilevamento delle modifiche (le tue tabelle).

Chris

http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/

6
Chris