2008-09-19 6 views
0

J'ai créé quelques tables procédurally via C# nommé quelque chose comme [MyTableOneCustom0] et [MyTableTwoCustom0]. Lorsque je tente de retourner toutes les valeurs de ces tables via « Table » dans Management Studio MS SQL Server, je reçois l'erreur suivante:Pourquoi ne puis-je pas ouvrir cette table dans SQL Server Management Studio?

Error Source: Microsoft.VisualStudio.DataTools

Error Message: Exception has been thrown by the target of an invocation.

Cependant, je ne peux toujours afficher toutes les données via un SELECT * instruction.

Est-ce que quelqu'un sait ce qui cause cela?

Répondre

1

Sur la base d'un article similaire publié à Egg Head Cafe, il semble que le Management Studio lève une exception s'il y a trop de colonnes incluses explicitement dans la requête. Select * les renvoie implicitement, il ne semble donc pas y avoir de problème.

J'ai plus de 800 colonnes dans cette table, donc je suis sûr que c'est le problème.

+0

Seulement 800 ???? Qu'est-il arrivé à la normalisation? – chrissie1

+0

Si vous avez vraiment besoin de 800 colonnes, vous pouvez utiliser des colonnes fragmentées (SQLServer 2008) – kristof

0

J'hésite à demander, mais normalement vous ne voudriez pas 800 ou colonnes dans une base de données, alors pourquoi avez-vous fait cela? Étant donné la façon dont les bases de données stockent les informations, vous créez peut-être de nombreux problèmes avec un design comme celui-ci en termes de récupération de données et de stockage. Combien d'octets de données ont une rangée complète? Vous savez qu'il y a une limite au nombre d'octets de données qui peuvent être stockés dans une rangée. Vous pourriez vous mettre en place pour des problèmes de saisie de données lorsqu'une ligne dépasse ces limites. Il pourrait être préférable de diviser en tables séparées même s'il y a une relation un-à-un. Lisez dans BOL sur les pages de données et comment les données sont stockées pour comprendre pourquoi cela me concerne.

Questions connexes