平时的项目很少会涉及这个问题,一般数据表结构建立以后,就基本固定了,大部分增长的都是行数据。但是当系统在某种情况下需要不断动态的增加表的时候,就会涉及到一个数据库最多可以有多少张表格。一般这种情况会出现在集团系统或者一些需要将用户数据分离的web系统中。
那么一张SQL server中最多到底可以有多少张表呢,在SQL server2008 R2的官方文档中, 是这么说的
Tables per database
32bit: Limited by number of objects in a database
64bit: Limited by number of objects in a database
就是说取决于数据库中对象数的限制,那么如何解释这个对象数的限制呢?
Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. The sum of the number of all objects in a database cannot exceed 2,147,483,647.
数据库对象包含了表,视图,存储过程,自定义函数,触发器,规则,默认值,以及约束等。这个数据的总和不能超过 2,147,483,647.也就是说,所有的数据对象加在一起不能超过有符号整数的正数范围。
由此,也就是说,数据库要支持个20多亿个数据对象,那么如果不是给每个列都设上默认值的话,要创建个几亿个表应该都说不成什么问题。所以在一般的情况下,我们也就可以理解SQL server对表的创建数量是没有限制的。
另外,附一下SQL server中最大值说明的情况,msdn上写的都很清楚
http://msdn.microsoft.com/en-us/library/ms143432.aspx