为啥我无法在 SQL Server Management Studio 中打开此表?

Posted

技术标签:

【中文标题】为啥我无法在 SQL Server Management Studio 中打开此表?【英文标题】:Why can't I open this table in SQL Server Management Studio?为什么我无法在 SQL Server Management Studio 中打开此表? 【发布时间】:2010-09-11 07:29:37 【问题描述】:

我通过 C# 程序创建了几个表,命名为 [MyTableOneCustom0] 和 [MyTableTwoCustom0]。当我尝试通过 MS SQL Server Management Studio 中的“打开表”从这些表中返回所有值时,我收到以下错误:

错误来源: Microsoft.VisualStudio.DataTools

错误消息:异常已出现 由调用的目标抛出。

但是,我仍然可以通过 SELECT * 语句调出所有数据。

有人知道这是什么原因吗?

【问题讨论】:

【参考方案1】:

根据位于Egg Head Cafe 的类似帖子,如果查询中明确包含的列过多,Management Studio 似乎会引发异常。 Select * 隐式返回它们,因此似乎没有问题。

我在这个表中有超过 800 列,所以我确定这就是问题所在。

【讨论】:

如果你真的需要 800 列,你可以考虑使用稀疏列 (SQLServer 2008)【参考方案2】:

我不敢问,但通常你不会想要 800 或数据库中的列,那么你为什么要这样做呢?考虑到数据库如何存储信息,您可能会在数据检索和存储方面为自己制造许多问题。一整行有多少字节的数据?您知道可以存储在一行中的数据字节数是有限制的。当一行超出这些限制时,您可能会遇到输入数据的问题。即使存在一对一的关系,最好还是拆分成单独的表。在 BOL 中阅读有关数据页和数据存储方式的信息,以了解我为何如此担心。

【讨论】:

以上是关于为啥我无法在 SQL Server Management Studio 中打开此表?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SQL Server 无法识别,即使我有对 DAL05.dll 的引用?

为啥我安装了Windows server 2008 R2 无法连接网络

为啥我不能删除此 SQL Server 表 [重复]

为啥在sql sever 中无法创建触发器?

为啥我不能为 SQL Server 2019 创建外部语言?

为啥我的SQL server 在附加数据库后,数据库总是变成了只读?