Es importante tener en cuenta que los datos totales de longitud fija y variable todavía están limitados a 8019 bytes en total. Ser capaz de hacer este loco gran número de columnas solo se admite en tablas dispersas donde la mayoría de los datos son nulos. De lo contrario, terminará con filas que superan los 8019 bytes y terminan con rowdata que no cabrán, o desbordamiento en datos de filas extendidas (que es muy costoso de mantener en comparación con las páginas de datos normales).
Hay un libro realmente bueno de Karen Delaney que tiene un montón de características internas y límites para SQL Server titulado SQL Server 2008 Internals. Si está realmente dentro de los límites de nivel bajo y cómo se hacen las cosas en SQL Server, es una lectura fantástica. Aumentará la profundidad de su conocimiento de cómo SQL Server hace lo que hace bajo el capó en el nivel de bytes al disco en algunos casos.
El límite máximo de columna es 30k solo si está utilizando la columna 'Column Set' en su tabla. Si no está utilizando la columna 'conjunto de columnas' en su tabla, el recuento máximo de columnas dispersas + no dispersas tomadas juntas en su tabla no puede ser mayor que 1024. Más detalles [aquí] (https: //www.simple- talk.com/sql/t-sql-programming/null-friendly-using-sparse-columns-and-column-sets-in-sql-server/) – RBT