我们正在连接到C#中的数据库,然后在其上运行一些sql脚本。
我需要能够缩小当前数据库而不指定名称。
我们在程序中没有数据库名称,我们只是连接并运行脚本。
这就是我的开始:
ALTER DATABASE SSSIndexes SET RECOVERY SIMPLE WITH NO_WAIT
GO
DBCC SHRINKFILE(N'SSSIndexes_Log', 1) <-- my issue is here
GO
但我不知道数据库名称或日志文件名。
可以吗?
答案 0 :(得分:5)
您可以通过调用以下内容获取当前数据库并缩小它:
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)