我想创建第二个日志文件,但错误地创建了一个数据文件。
现在我试图删除它,但我收到错误消息“无法删除文件,因为它不为空”。以下查询列出了很多表:
SELECT o.name AS TableOrIndex
FROM sysfiles f
JOIN dbo.sysfilegroups s
ON f.groupid = s.groupid
JOIN dbo.sysindexes i
ON i.groupid = s.groupid
JOIN dbo.sysobjects o
ON i.id = object_id(o.name)
AND i.indid in (0, 1)
WHERE f.name = 'DB_NDF_FILE'
UNION
SELECT i.name
FROM sysindexes i join sysfilegroups f ON i.groupid = f.groupid
JOIN sysfiles l ON f.groupid = l.groupid
WHERE l.name = 'DB_NDF_FILE'
将这些数据移动到其他数据文件的正确步骤是什么,以便我可以安全地删除这个新创建的文件?
利用:
我无法删除 ndf 文件。即使我在问题上发布的查询也是空的,这意味着 ndf 文件中没有表数据,但删除命令仍然失败。
我刚刚复制了数据库上所有表的创建表代码,删除了数据库并用干净的文件重新创建了它。这是一个 ETL 阶段数据库,上面没有重要数据,所以我可以“删除”所有表并重新创建它们。