动态列数超过SQL Server的最大列限制 我有一个真正的需要来创建一个有几百列的查询。

动态列数超过SQL Server的最大列限制 我有一个真正的需要来创建一个有几百列的查询。,sql,sql-server,database-design,Sql,Sql Server,Database Design,我们正在为我们的客户写一封邮件。在这封邮件中,他们列出了几个客户可以去获取信息的地点。当我们的设计师为这封邮件创建模板时,他们正在为每个地址设置“插槽”。邮件上的插槽数量因邮件而异,从6个到50个不等 我需要查询的是将数据合并到邮件中。我需要提供一个查询,其中每个邮件都是一条记录,其中包含该邮件所需的所有信息。我正在动态创建SQL语句,其中包含该邮件上的最大插槽数。该邮件上最多有50个插槽,我的查询需要如下所示: MailingID, LogoLocation, APNCode, TFN,

我们正在为我们的客户写一封邮件。在这封邮件中,他们列出了几个客户可以去获取信息的地点。当我们的设计师为这封邮件创建模板时,他们正在为每个地址设置“插槽”。邮件上的插槽数量因邮件而异,从6个到50个不等

我需要查询的是将数据合并到邮件中。我需要提供一个查询,其中每个邮件都是一条记录,其中包含该邮件所需的所有信息。我正在动态创建SQL语句,其中包含该邮件上的最大插槽数。该邮件上最多有50个插槽,我的查询需要如下所示:

MailingID, 
LogoLocation, 
APNCode, 
TFN, 
CopyVersion, 
Slot1_Name, 
Slot1_Address, 
Slot1_City, 
Slot1_State,
Slot1_DateTime,
...
Slot50_Name,
Slot50_Address,
Slot50_City,
Slot50_State,
Slot50_DateTime
我的第一次尝试是创建一个包含所有这些字段的表,但出现以下错误:

The table has been created, but its maximum row size exceeds the allowed maximum of 8060 bytes. INSERT or UPDATE to this table will fail if the resulting row exceeds the size limit.
他们只需要CSV文件中的数据,所以我不需要为其创建临时表

我的问题是,我正在尝试创建一个标准流程,由于字段的数量会发生这样的变化,我希望以一种不会在每次尝试运行时都炸毁系统的方式来设置它

我看了几页,找到了有关SQL Server大小限制的详细信息,还有一些评论说这样的表显示了糟糕的数据库设计。

我希望有人有一些这样做的经验,可以分享一些见解,如何使这一效率。有没有其他我不知道的方法来实现这一点

更新: 谢谢你的快速回复

关于我的场景的更多细节。你会收到一份传单,当你把传单翻过来时,它会列出你所在县的50个地方,你可以去那里上课或参加会议或其他什么的。该传单的所有详细信息都需要在一条记录中,以便他们可以在一个页面上映射字段。如果该县有50个地址/日期/时间组合,则他们需要将其包含在1记录中,以便正确分配传单的位置。想想巨型邮件合并,那里可能只有100个县(100张传单),但每个传单都有大量的信息

当数据实际存储在数据库中时,我将存储特定传单的id(MailingID),每个地址/日期/时间组合都是它自己的记录。这只是他们需要的文件,将细节合并到创造性的作品中,必须像这样进行非规范化


我还没有找到任何关于视图限制的详细信息。视图是否具有与表相同的限制?为他们创建一个视图,当他们需要数据时可以下载吗?

该传单的所有详细信息都需要在一条记录中,这样他们就可以在一个页面上映射字段,这是一个值得怀疑的假设。为什么数据不能存储在第二个表中的50行中


无论如何,如果您坚持将所有内容存储在一行中,那么您可能应该使用XML或JSON。这使得所有这些问题都消失了。SQLServer非常支持XML。您甚至可以动态生成XML。因此,您可以将这50个项目正确地存储在第二个表中,并仅将它们组合成一个XML值以进行查询。

只要不完全填充每一列,您所做的应该是正确的。基本上,除非你在一行的每一列中都有大的值,否则就不会有问题。很明显,你在每个插槽中都有不同的地址,但是为什么你有50个呢?为什么它们是重复的,而不是新的行?如果可能的话,最好避免这种设计,尽管有一些有效的用例(通常不会达到50次重复的程度…)。让我们看看:
50*(30[地址]+15[城市]+2[州]+20[日期时间])=3350
(合理的平均长度)-姓名长度在100个字符以下,对吗?您可能会很好,只是进行了健壮的错误检查。我同意您看到的关于表结构设计糟糕的评论。您的客户端能否接受更规范化布局的CSV文件?