Question

J'émigre une grande quantité de tables vides la plupart du temps dans SQL Server 2008.

Les tableaux sont des cloisons verticales d'une grande table logique.

Le problème est cette table logique a plus de 1024 colonnes.

Étant donné que la plupart des champs sont nuls, je prévois d'utiliser une table clairsemée.

Pour toutes mes tables jusqu'à présent, je suis SELECT ... INTO utiliserai, qui travaille vraiment bien.

Cependant, maintenant j'ai "CREATE TABLE a échoué parce que la colonne 'xyz' dans le tableau 'MyBigTable' dépasse le maximum de 1024 colonnes."

Est-il possible que je peux faire SELECT ... INTO afin qu'il crée la nouvelle table avec le soutien clairsemés?

Était-ce utile?

La solution

Qu'est-ce que vous voulez sans doute faire est de créer la table et le remplir manuellement avec une instruction INSERT ... SELECT.

Pour créer la table, je recommande scripts les différentes tables de composants et la fusion de leurs définitions, ce qui les rend tout SPARSE nécessaire. Ensuite, il suffit d'exécuter votre seule instruction CREATE TABLE.

Autres conseils

Vous ne pouvez pas (et ne veulent probablement pas de toute façon). Voir Clause INTO (TSQL) pour la documentation MSDN.

Le problème est que les tables rares sont une caractéristique de stockage physique et non une caractéristique logique, donc il n'y a aucun moyen le moteur SGBD ne saurait copier sur cette caractéristique. De plus, il est une propriété de table à l'échelle et le SELECT peut avoir plusieurs tables source sous-jacente. Voir la section Remarques de la page où je lié explique comment vous ne pouvez utiliser les détails de l'organisation par défaut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top