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

Traduzione articoli Traduzione articoli
Identificativo articolo: 956176 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

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.

ProprietÓ

Identificativo articolo: 956176 - Ultima modifica: sabato 8 febbraio 2014 - Revisione: 4.0
Le informazioni in questo articolo si applicano a:
  • 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
Chiavi:á
kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com