2010-08-26 5 views
0

Je migre une grande quantité de tables principalement vides dans SQL Server 2008.T-SQL: SELECT INTO table vide?

Les tables sont des partitions verticales d'une grande table logique.

Problème est ce tableau logique a plus de 1024 colonnes. Etant donné que la plupart des champs sont null, je prévois d'utiliser une table clairsemée.

Pour l'ensemble de mes tables jusqu'à présent, j'ai utilisé SELECT ... INTO, qui fonctionne très bien.

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

Est-il possible de faire SELECT ... INTO pour créer la nouvelle table avec un support clairsemé?

Répondre

2

Ce que vous voulez probablement faire est de créer la table manuellement et de la remplir avec une instruction INSERT ... SELECT.

Pour créer la table, je recommanderais de scripter les différentes tables de composants et de fusionner leurs définitions, en les rendant tous SPARSE si nécessaire. Ensuite, exécutez simplement votre instruction CREATE TABLE.

+0

Did this. J'ai bien travaillé. – tomfanning

0

Vous ne pouvez pas (et ne voulez probablement pas de toute façon). Voir INTO Clause (TSQL) pour la documentation MSDN. Le problème est que les tables creuses sont une caractéristique de stockage physique et non une caractéristique logique, donc le moteur DBMS ne sait pas comment copier cette caractéristique. De plus, il s'agit d'une propriété de table et le SELECT peut avoir plusieurs tables source sous-jacentes. Reportez-vous à la section "Remarques" de la page "J'ai lié" où il est expliqué comment vous pouvez uniquement utiliser les détails d'organisation par défaut.

Questions connexes