T-SQL: SELECT INTO spärlichen Tisch?
-
01-10-2019 - |
Frage
Ich bin eine große Menge an meist leeren Tabellen in SQL Server 2008 zu migrieren.
Die Tische sind vertikale Partitionen einer großen logischen Tabelle.
Das Problem ist diese logische Tabelle mehr als 1024 Spalten hat.
Da die meisten Felder null sind, plane ich eine spärliche Tabelle zu verwenden.
Für alle meine Tabellen bisher habe ich wurde mit SELECT ... INTO, die wirklich gut gearbeitet hat.
Aber jetzt habe ich "TABLE gescheitert CREATE weil Spalte 'xyz' in der Tabelle 'MyBigTable' die maximal 1024 Spalten überschreitet."
Gibt es eine Möglichkeit, SELECT tun kann ... INTO so, dass sie die neue Tabelle mit spärlicher Unterstützung schafft?
Lösung
Was möchten Sie wahrscheinlich zu tun ist, um die Tabelle manuell erstellen und es mit einer INSERT ... SELECT
Anweisung füllen.
Um die Tabelle zu erstellen, würde ich scripting die verschiedenen Komponenten Tabellen empfehlen und die Definitionen Verschmelzung sie all SPARSE
wie nötig zu machen. Dann einfach Ihre einzige CREATE TABLE
Anweisung ausführen.
Andere Tipps
Sie können nicht (und wahrscheinlich nicht wollen sowieso). Siehe INTO-Klausel (TSQL) für die MSDN-Dokumentation.
Das Problem ist, dass spärlich Tabellen eine physikalische Speichercharakteristik sind und kein logisches Merkmal, so dass es keine Möglichkeit gibt, die DBMS-Engine kopieren über wissen würde, dass charakteristisch. Darüber hinaus ist es eine Tabelle weite Eigenschaft und die SELECT mehr zugrunde liegende Quelltabellen haben. Siehe die Erläuterungen Abschnitt der Seite I verknüpft, wo es wird erläutert, wie Sie nur Standardorganisation Details verwenden können.