g00*_*0fy 10 sql-server-2005 sql-server sql-server-express limits
我很迷惑。AFAIK SQL Server 2005 Express 的数据库 数据大小限制为 4GB 。但是我有以下结果sp_spaceused:

space left直到我达到限制吗?index_size在极限算?这是我无耻地从这里撕下的一个好脚本:
use [Insert DB Name]
select
a.FILEID,
[FILE_SIZE_MB] =
convert(decimal(12,2),round(a.size/128.000,2)),
[SPACE_USED_MB] =
convert(decimal(12,2),round(fileproperty(a.name, 'SpaceUsed')/128.000,2)),
[FREE_SPACE_MB] =
convert(decimal(12,2),round((a.size-fileproperty(a.name, 'SpaceUsed'))/128.000,2)) ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a
Run Code Online (Sandbox Code Playgroud)
这很好,因为它将为您提供每个 DB 文件中的可用空间(您可能有多个文件,也许有人将其设置为在每个文件中放置一些对象)以及可用大小。
例如,您有一个 4GB 的数据文件,其中有 3GB 的可用空间。也许你有 1 个没有大量数据的 MDF,但有一个有大量数据的 NDF。此查询将告诉您每个文件中的可用大小以及该文件分配给哪个数据库。请记住将每个数据库的所有“SPACE_USED_MB”相加以获得总大小。
祝你好运!
编辑: 删除了一个不受支持和错误的命令,我认为我可以在这里发布此查询。:(
数据库的大小就是文件的大小。查看数据文件的实际大小(事务日志不计算在内)。是的索引计数。如果空间不足,请考虑升级到 SQL 2012 Express,因为这会将大小限制增加到 10 Gig。