Al momento sei offline in attesa che la connessione Internet venga ristabilita

Messaggio di errore quando si tenta di salvare una tabella in SQL Server: "Il salvataggio delle modifiche non è consentito"

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 956176
Sintomi
Quando si utilizza Data Definition Language (DDL) per modificare una tabella, e quindi si tenta di salvare la tabella in Microsoft SQL Server 2008, è possibile che venga visualizzato il seguente messaggio:
Non è consentito salvare le modifiche. Le modifiche apportate richiedono le seguenti tabelle vengono eliminati e ricreati.Si sono apportate modifiche a una tabella che non può essere ricreata o attivata l'opzione Impedisci salvataggio delle modifiche che richiedono la tabella per essere ricreato.
Cause
Questo problema si verifica quando è attivata l'opzione Impedisci salvataggio delle modifiche che richiedono la ricreazione della tabella e si apportano una o più delle seguenti modifiche alla tabella:
  • Si modifica l'impostazione Consenti valori null per una colonna.
  • Riordinare le colonne della tabella.
  • Si modifica il tipo di dati della colonna.
  • Aggiungere una nuova colonna.
Quando si modifica una tabella in modo che si modifica la struttura dei metadati della tabella e quindi si salva la tabella, la tabella deve essere ricreata in base a queste modifiche. Questo può determinare la perdita di metadati e una perdita di dati diretto durante la ricreazione della tabella. Se si attiva l'opzione Impedisci salvataggio delle modifiche che richiedono la ricreazione della tabella nella sezione Progettazione della finestra di dialogo Opzioni di SQL Server Management Studio (SSMS) , viene visualizzato il messaggio di errore menzionato nella sezione "Sintomi".
Workaround
Per ovviare a questo problema, utilizzare le istruzioni Transact-SQL per apportare le modifiche alla struttura dei metadati di una tabella. Per ulteriori informazioni fare riferimento al seguente argomento nella documentazione in linea di SQL Server:

http://msdn.microsoft.com/en-us/library/ms190273.aspx

Ad esempio, modificare MyDate colonna di tipo datetime nella tabella denominata MyTable di accettare valori NULL che è possibile utilizzare:

alter table MyTable alter column MyDate7 datetime NULL

Importante È consigliabile non risolvere il problema disattivando l'opzione Impedisci salvataggio delle modifiche che richiedono la ricreazione della tabella. Per ulteriori informazioni sui rischi di disattivazione di questa opzione, vedere la sezione "Ulteriori informazioni".
Status
Microsoft ha confermato che si tratta di un bug nei prodotti Microsoft elencati nella sezione "Si applica a".
Informazioni
Per modificare l'opzione Impedisci salvataggio delle modifiche che richiedono la ricreazione della tabella , attenersi alla seguente procedura:
  1. Aprire SQL Server Management Studio (SSMS).
  2. Scegliere Opzionidal menu Strumenti .
  3. Nel riquadro di spostamento della finestra di dialogo Opzioni , fare clic su Strumenti di progettazione.
  4. Selezionare o deselezionare la casella di controllo Impedisci salvataggio delle modifiche che richiedono la ricreazione della tabella e quindi fare clic su OK.
Nota. Se si disattiva questa opzione, non viene avvisato quando si salva la tabella le modifiche apportate hanno modificato la struttura dei metadati della tabella. In questo caso, potrebbe verificarsi una perdita di dati quando si salva la tabella.

Rischio di disattivare l'opzione "Impedisci il salvataggio delle modifiche che richiedono la ricreazione della tabella"

Anche se se si disattiva questa opzione consente di evitare di ricreare una tabella, può inoltre causare la perdita di modifiche. Ad esempio, si supponga che si attiva la funzionalità di rilevamento delle modifiche di SQL Server 2008 per tenere traccia delle modifiche alla tabella. Quando si esegue un'operazione in che modo è possibile ricreare la tabella, viene visualizzato il messaggio di errore menzionato nella sezione "Sintomi". Tuttavia, se si disattiva questa opzione, il rilevamento delle informazioni di modifiche esistente viene eliminato quando la tabella viene ricreata. È pertanto consigliabile che non ovviare a questo problema disattivando l'opzione.

Per determinare se la funzionalità di rilevamento delle modifiche è attivata per una tabella, attenersi alla seguente procedura:
  1. In SQL Server Management Studio, individuare la tabella in Esplora oggetti.
  2. Pulsante destro del mouse nella tabella e quindi scegliere proprietà.
  3. Nella finestra di dialogo Proprietà tabella , fare clic su Change Tracking.
Se il valore dell'elemento di Rilevamento delle modifiche è True, questa opzione è attivata per la tabella. Se il valore è False, questa opzione è disattivata.

Quando è attivata la funzionalità Change Tracking, è possibile utilizzare istruzioni Transact-SQL per modificare la struttura dei metadati della tabella.

Procedura per riprodurre il problema

  1. In SQL Server Management Studio, creare una tabella che contiene una chiave primaria nello strumento di progettazione tabelle.
  2. Il pulsante destro del database che contiene questa tabella e quindi scegliere proprietà.
  3. Nella finestra di dialogo Proprietà Database fare clic su Change Tracking.
  4. Impostare il valore dell'elemento di Rilevamento delle modifiche su Truee quindi fare clic su OK.
  5. Pulsante destro del mouse nella tabella e quindi scegliere proprietà.
  6. Nella finestra di dialogo Proprietà tabella , fare clic su Change Tracking.
  7. Impostare il valore dell'elemento di Rilevamento delle modifiche su Truee quindi fare clic su OK.
  8. Scegliere Opzionidal menu Strumenti .
  9. Nella finestra di dialogo Opzioni , fare clic su Strumenti di progettazione.
  10. Fare clic per selezionare la casella di controllo Impedisci salvataggio delle modifiche che richiedono la ricreazione della tabella e quindi fare clic su OK.
  11. Nello strumento di progettazione tabelle, modificare l'impostazione Consenti valori null in una colonna esistente.
  12. Se si tenta di salvare le modifiche alla tabella.
sqlsvr12 sqlsvr2008 "SQL Server 2008 strumenti"SQL2008RelNoteTools "change tracking"

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 956176 - Ultima revisione: 02/08/2014 08:33:00 - Revisione: 4.0

Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core

  • kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtit
Feedback
=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">