可以在不指定数据库名称的情况下对当前数据库执行收缩

时间:2013-03-04 20:19:04

标签: sql sql-server-2008 tsql

我们正在连接到C#中的数据库,然后在其上运行一些sql脚本。

我需要能够缩小当前数据库而不指定名称。

我们在程序中没有数据库名称,我们只是连接并运行脚本。

这就是我的开始:

ALTER DATABASE SSSIndexes SET RECOVERY SIMPLE WITH NO_WAIT
GO
DBCC SHRINKFILE(N'SSSIndexes_Log', 1)   <-- my issue is here
GO

但我不知道数据库名称或日志文件名。

可以吗?

1 个答案:

答案 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)