Pregunta

Estoy migrando una gran cantidad de mesas vacías en su mayoría en SQL Server 2008.

Las mesas son particiones verticales de una tabla lógica grande.

El problema es que esta tabla lógica tiene más de 1024 columnas.

Dado que la mayoría de los campos son nulos, planeo utilizar una tabla escasa.

Para todos mis tablas hasta ahora he estado usando SELECT ... INTO, que ha estado trabajando muy bien.

Sin embargo, ahora tengo "CREATE TABLE fracasado porque la columna 'xyz' de la tabla 'MyBigTable' supera el máximo de 1024 columnas."

¿Hay alguna manera de hacer SELECT ... INTO para que se crea la nueva tabla con el apoyo escasa?

¿Fue útil?

Solución

Lo que es probable que desee hacer es crear la tabla manualmente y rellenarla con una declaración INSERT ... SELECT.

Para crear la tabla, recomendaría secuencias de comandos de las diferentes tablas de componentes y la fusión de sus definiciones, haciendo que todos SPARSE según sea necesario. A continuación, sólo ejecutar su declaración CREATE TABLE sola.

Otros consejos

No se puede (y probablemente no quiero de todos modos). Ver Cláusula INTO (TSQL) para la MSDN documentación.

El problema es que las tablas dispersas son una característica de almacenamiento físico y no una característica lógica, por lo que no hay manera de que el motor DBMS sabría que copiar esa característica. Por otra parte, es una propiedad de toda la mesa y el SELECT puede tener varias tablas de origen subyacentes. Vea la sección Notas de la página he vinculado en el que se explica cómo se puede utilizar solamente detalles de la organización por defecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top