Il problema che modifica dell'ordine delle colonne di una tabella (SQL Server 2008)

StackOverflow https://stackoverflow.com/questions/930713

  •  06-09-2019
  •  | 
  •  

Domanda

Quando provo a cambiare questa lista colonne:

Nombre
Imagen
Descripcion
Activo
IdLineaProducto

in questo (IdLineaProducto è il primo)

IdLineaProducto
Nombre
Imagen
Descripcion
Activo

SQL Server Management Studio dice che non è permesso di salvare le modifiche perché la tabella deve essere eliminato e ricreato (in spagnolo ...). Potrei farlo in SQL Server 2005, ma non in SQL Server 2008.

Lo stesso accade in altre situazioni, come cercare di trasformare una colonna non-identità int all'identità. Perché accade questo? Come posso risolvere questo? Forse qualche problema mal configurato? Alcuni nuova funzionalità di SQL Server?

È stato utile?

Soluzione

Ho trovato il soluzione a questo problema .

  

Questo è di progettazione e può essere rapidamente   fissa in Management Studio dal   deselezionando una proprietà. Per risolvere questo problema in   Management Studio, andare in Strumenti ->   Opzioni, quindi andare alla pagina Designer   e deselezionare "salvare le modifiche Impedire   che richiedono tavolo ri-creazione".

Attenzione che essa può avere conseguenze indesiderate , come la perdita di dati in altre tabelle relativi a questo.

Altri suggerimenti

Questo è solo il modo in cui funziona ... si può solo aggiungere colonne alla fine, a meno che non DROP e CREATE esso (normalmente la copia dei dati di andata e ritorno in, che l'IDE potrebbe aiutare con). Ma perché vuoi cambiare l'ordine? Anche se non è l'ideale, il vostro SELECT ecc grado di gestire questo ... cioè.

SELECT IdLineaProducto, Nombre, Imagen, Descripcion, Activo
FROM   TheTable
...

(raramente è una buona idea quella di utilizzare solo SELECT *)


Re del IDENTITY; Di nuovo, questo è fondamentale per la colonna - anche se in questo caso è possibile copiare i dati fuori, DROP la colonna, e ri-ADD la colonna come IDENTITY (sul lato destro), e copiarlo di nuovo in - ma poi si deve complicazioni extra con IDENTITY INSERT e il valore SEED (in modo da non tenta di ottenere duplicati di valori di identità esistenti).

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