Ero*_*ocM 3 sql t-sql sql-server-2008
我们正在连接到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)