我在compatibility_level为80(SQL Server 2000)中有许多数据库; 我需要执行以下操作:
select
sf.fileid, sf.groupid, sf.name, sf.filename, mf.database_id
from
sys.sysfiles sf
JOIN
sys.master_files mf ON sf.filename = mf.physical_name COLLATE DATABASE_DEFAULT
CROSS APPLY
sys.dm_os_volume_stats (mf.database_id, sf.fileid)
但是我收到以下错误:
Msg 102,Level 15,State 1,Line 4
'附近的语法不正确。'。
我无法更改兼容模式,我不知道如何从master db的上下文为我的数据库运行此特定脚本。
答案 0 :(得分:0)
在SQL Server 2000中没有'sys'文件。许多人都有等价物,你可以看到一个好的图表:
http://www.mssqltips.com/sqlservertip/1037/system-information-in-sql-server-2000-vs-sql-server-2005/
例如在2000年,有一个dbo.sysfiles但没有sys.sysfiles。这些表不一定包含相同的列.....
答案 1 :(得分:0)
"交叉申请"在早期版本的SQL中以及在旧兼容性模型中运行的数据库中不允许使用。