2013-03-04 85 views
3

我們正在使用C#連接到數據庫,然後在其上運行幾個sql腳本。可以在當前數據庫上執行收縮而不指定數據庫名稱

我需要能夠縮小當前數據庫而不指定名稱。

我們在程序中沒有數據庫名稱,我們只是給出連接並運行腳本。

這是我開始:

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

但我不會知道數據庫名或日誌文件名。

可以這樣做嗎?

回答

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) 
+0

如果我想收縮日誌,我怎麼會去嗎?這不會縮小數據庫嗎? – ErocM 2013-03-04 21:21:07

+0

看看我更新的帖子 – 2013-03-04 21:25:46