Domanda

Sto usando SQL Server 2008 R2.

Ho una tabella che ha diversi campi, tra cui un campo nvarchar (max).

Quando provo e aggiungere un nuovo campo di tipo varbinary (max) ottengo un messaggio di errore: "salvare le modifiche Non è consentito il cambiamento che avete fatto richiede i seguenti tabelle da droped e ricreato".

E 'possibile avere un nvarchar (max) e un varbinar campi (max) nella stessa tabella?

E 'l'unico modo per risolvere questo problema, per creare una nuova tabella con la nuova struttura e il trasferimento dei dati?

È stato utile?

Soluzione

Sì, è possibile.

Se state vedendo questo messaggio è necessario avere cercato di inserire la nuova colonna in mezzo a quelle esistenti nella tabella progettista SSMS. Aggiungilo sull'estremità delle colonne esistenti, allora la tabella non dovrà essere completamente ricostruito.

O semplicemente eseguire

alter table YourTable add newcol varbinary(max) null

Altri suggerimenti

Sì, certo - probabilmente basta avere questa nuova opzione "sicurezza" in SSMS ancora abilitato (è attivata per impostazione predefinita):

alt text

che è sotto Tools > Options ....

Vai a Tools | Options > Designers e deselezionare l'opzione 'Impedire il salvataggio delle modifiche che richiedono tavolo ri-creazione'

SQL Server non consente di evolvere il tavolo in questo modo, perché non può modificare l'archiviazione per la tabella esistente in modo dinamico. Se si vuole fare questo, è necessario creare una nuova tabella con il nuovo schema e compilarlo con i dati della tabella originale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top