Skip to main content

Shrink data and log files - MSSQL

Shrink data and log files

To shrink data and log files for the database, use below query.
use <database>;
DECLARE @mdfName varchar(60);
DECLARE @ldfName varchar(60);
SELECT @mdfName = file_name(1) FROM sys.master_files WHERE database_id = db_id() AND type = 1;
SELECT @ldfName = name FROM sys.master_files WHERE database_id = db_id() AND type = 1;
ALTER DATABASE <database> SET RECOVERY SIMPLE;
    DBCC SHRINKFILE (@mdfName, 0);
    DBCC SHRINKFILE (@ldfName, 0);
    DBCC SHRINKFILE (@mdfName, TRUNCATEONLY);
    DBCC SHRINKFILE (@ldfName, TRUNCATEONLY);

To set database recovery as FULL, use below query.
 ALTER DATABASE <database> SET RECOVERY FULL;

Comments

Popular posts from this blog

Backup and restore database in SQL Server

To backup the database, use below query. Backup database <databaseName> to disk ='<backupLocation>.bak' with init; To backup the logs, use below query. Backup log <databaseName> to disk =' <backupLocation> .trn' with init; To restore from the database backup, use below query. restore database <databaseName> from disk = <backupLocation>.bak ' with norecovery, replace, move 'testmirror' to 'DATA.mdf', move 'testmirror_log' to 'DATA_log.ldf'; To restore from the transaction log, use below query. restore log <databaseName> from disk =' <backupLocation> .trn ' with recovery, replace, move 'testmirror' to 'DATA.mdf', move 'testmirror_log' to 'DATA_log.ldf'

Execute queries from SQL files

To execute queries from a SQL file, use below query. MySQL: There are 2 options: If you are in MySQL command line, execute below query. source 'SQLfilePath'; If you are in command line/shell, execute below query. mysql -u userName -p password database < 'SQLfilePath' MSSQL: Use T-SQL, execute below query. sqlcmd -S databaseName -i "SQLfilePath" -o "outputFilePath"

Rename database name in MSSQL

To rename the database is MSSQL, use below queries. ALTER DATABASE srcDatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO sp_rename ' srcDatabaseName' , ' dest DatabaseName ' ,'DATABASE'; GO ALTER DATABASE dest DatabaseName SET MULTI_USER;