我们使用 C# 连接到数据库,然后在其上运行一些 sql 脚本。
我需要能够在不指定名称的情况下缩小当前数据库。
我们在程序中没有数据库名称,我们只是获得了连接并运行了脚本。
这是我开始的:
ALTER DATABASE SSSIndexes SET RECOVERY SIMPLE WITH NO_WAIT
GO
DBCC SHRINKFILE(N'SSSIndexes_Log', 1) <-- my issue is here
GO
但我不知道数据库名称或日志文件名称。
可以做到吗?
最佳答案
您可以通过调用获取当前数据库并缩小它:
DECLARE @dbName VARCHAR(50)
SELECT @dbName = DB_NAME()
DBCC SHRINKDATABASE(@dbName)
只做日志文件:
DECLARE @logName VARCHAR(50)
SELECT @logName = name FROM sys.master_files WHERE database_id = db_id() AND type = 1
DBCC SHRINKFILE(@logName, 1)
关于sql - 可以在不指定数据库名称的情况下对当前数据库进行收缩吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210357/