Domanda

sto migrando una grande quantità di tavoli per lo più vuoti in SQL Server 2008.

I tavoli sono partizioni verticali di un grande tavolo logica.

Il problema è questa tabella logica ha più di 1024 colonne.

Dato che la maggior parte dei campi sono nulli, ho intenzione di usare una tabella sparsa.

Per tutte le mie tabelle finora ho utilizzato SELECT ... INTO, che ha lavorato molto bene.

Tuttavia, ora ho "CREATE TABLE non è riuscita perché la colonna 'xyz' nella tabella 'MyBigTable' supera il limite massimo di 1024 colonne".

C'è un modo che io possa fare SELECT ... INTO in modo da creare la nuova tabella con il supporto di radi?

È stato utile?

Soluzione

Quello che probabilmente vuole fare è creare la tabella manualmente e popolarlo con un'istruzione INSERT ... SELECT.

Per creare la tabella, mi sento di raccomandare scripting le diverse tabelle dei componenti e la fusione le loro definizioni, rendendoli tutti SPARSE se necessario. Poi basta eseguire la sua dichiarazione singola CREATE TABLE.

Altri suggerimenti

Non puoi (e probabilmente non vogliono in ogni caso). Vedere IN clausola (T) per il MSDN documentazione.

Il problema è che le tabelle sparse sono una caratteristica fisica di archiviazione e non una caratteristica logica, quindi non c'è alcun modo in cui il motore di DBMS saprebbe copiare quella caratteristica. Inoltre, è una struttura a livello di tavolo e SELECT può avere più tabelle di origine sottostanti. Vedere la sezione Osservazioni della pagina ho collegato in cui viene descritto come è possibile utilizzare solo i dettagli organizzativi di default.

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