gpt4 book ai didi

sql-server - 如何使用 ODBC 从 'DBCC SHOWFILESTATS' 检索结果?

转载 作者:行者123 更新时间:2023-12-04 04:58:14 25 4
gpt4 key购买 nike

我需要使用 ODBC 连接在我的 SQL Server 数据库中找到可用的相对空间量。

我想尝试使用 dbcc showfilestats 但它没有返回任何结果。

阅读 INF: Processing DBCC Commands in ODBC applications 我明白这是因为这不是一个选择语句。让我感到困惑的是,该声明也没有返回任何信息(与论文相反)。

我也尝试使用临时表:

declare @FileStats table
(
Fileid int,
[FileGroup] int,
TotalExtents int,
UsedExtents int,
Name varchar(255),
[FileName] varchar(max)
)
insert into @FileStats execute('dbcc showfilestats')

并在同一个 SQLExecDirect 中从该表中进行选择。
select
1-convert(float, sum(UsedExtents))/convert(float, sum(TotalExtents))
as FreeDataSpace from @FileStats

这只会导致错误 24000(并且我确保没有其他打开的语句)。

有没有其他方法来检索这些信息?

最佳答案

显然,总有一种替代方法可以做某事。

最终对我有用的是:

SELECT convert(float, (sum(f.size) - sum(fileproperty(f.name,'SpaceUsed')))) / sum(f.size)
FROM sys.sysfiles f JOIN sys.database_files db_f ON f.fileid = db_f.file_id
WHERE db_f.type = 0

它通过 ODBC 工作,并在 Management Studio 中执行时给出与我的原始解决方案相同的结果。

关于sql-server - 如何使用 ODBC 从 'DBCC SHOWFILESTATS' 检索结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16484374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com