Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何存储包含500个CLOB字段的记录?_Sql_Sql Server_Sql Server 2016 - Fatal编程技术网

Sql 如何存储包含500个CLOB字段的记录?

Sql 如何存储包含500个CLOB字段的记录?,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,Oracle的最大列限制为1000,即使所有列都定义为VARCHAR(4000),我也能够创建表并在所有字段中加载大量数据。 我能够在SQL Server中创建一个包含500个varchar(最大)列的表,但是当我尝试插入数据时,出现以下错误: 无法创建大于允许值的大小为13075的行 最大行大小为8060 当我制作了200列表格时,我能够插入大量的数据 在SQL Server中是否有这样做的方法?我运行了一些测试,似乎每个填充的varchar(max)列上都有26个字节的开销。 我能够填充30

Oracle的最大列限制为1000,即使所有列都定义为VARCHAR(4000),我也能够创建表并在所有字段中加载大量数据。
我能够在SQL Server中创建一个包含500个varchar(最大)列的表,但是当我尝试插入数据时,出现以下错误:

无法创建大于允许值的大小为13075的行 最大行大小为8060

当我制作了200列表格时,我能够插入大量的数据


在SQL Server中是否有这样做的方法?

我运行了一些测试,似乎每个填充的varchar(max)列上都有26个字节的开销。
我能够填充308列。
如果您将列分为两个表,就可以了(直到下一个限制到来)

附加说明
我严重怀疑这种表格结构的合理性。

有没有理由不将数据保存为行而不是列

这可能取决于您如何创建包含500个字段的表。SQL Server支持更多的列。请参阅和。对SQL Server使用
varchar(max)
。这应该行得通,因为列数据应该存储在其他数据页上。我怀疑您对此表结构是否有任何理由。你想在这里做什么?@GordonLinoff即使实际内容存储在行外,指向它的指针仍需要存储在行内,OP将无法接近1000。没有充分的理由说明“大量csv文件”需要1000个CLOB列。我强烈建议您改用关系设计。另外一个好处是,您不会遇到这样的问题。