Tag Archives: mssql

See if a database is using Enterprise features of an Microsoft SQL server.

Run this command to see if any database on the SQL Server is using enterprise features

IF OBJECT_ID('tempdb.dbo.##enterprise_features') IS NOT NULL
  DROP TABLE ##enterprise_features

CREATE TABLE ##enterprise_features
  (
     dbname       SYSNAME,
     feature_name VARCHAR(100),
     feature_id   INT
  )

EXEC sp_msforeachdb
N' USE [?] 
IF (SELECT COUNT(*) FROM sys.dm_db_persisted_sku_features) >0 
BEGIN 
   INSERT INTO ##enterprise_features 
    SELECT dbname=DB_NAME(),feature_name,feature_id 
    FROM sys.dm_db_persisted_sku_features 
END '
SELECT *
FROM   ##enterprise_features

 

MSSQL Free Space in Databases files

To get a list of the databases files, and the current disk size in MB, and the Free Space in MB in each fil, you can use this commands

USE [DATABASE_NAME]

SELECT DB_NAME() AS DbName, 
name AS FileName, 
size/128.0 AS CurrentSizeMB, 
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB 
FROM sys.database_files;

If you need a overview of all yours database this TSQL can be used

CREATE TABLE #FileSize
(dbName NVARCHAR(128), 
    FileName NVARCHAR(128), 
    type_desc NVARCHAR(128),
    CurrentSizeMB DECIMAL(10,2), 
    FreeSpaceMB DECIMAL(10,2)
);
    
INSERT INTO #FileSize(dbName, FileName, type_desc, CurrentSizeMB, FreeSpaceMB)
exec sp_msforeachdb 
'USE [?]; 
 SELECT DB_NAME() AS DbName, 
        name AS FileName, 
        type_desc,
        size/128.0 AS CurrentSizeMB,  
        size/128.0 - CAST(FILEPROPERTY(name, ''SpaceUsed'') AS INT)/128.0 AS FreeSpaceMB
FROM sys.database_files
WHERE type IN (0,1);';
    
SELECT * 
FROM #FileSize
WHERE dbName NOT IN ('distribution', 'master', 'model', 'msdb');
    
DROP TABLE #FileSize;

Shring SQL log file

USE [TestDb]
GO
ALTER DATABASE [TestDb] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC SHRINKFILE([TestDb_Log], 1)
ALTER DATABASE [TestDb] SET RECOVERY FULL WITH NO_WAIT
GO

 

Where TestDB, is the database name, and TestDB_Log is the SQL Log file name.

Change SQL Collation

Steps for chaning Collation:

  1. Take backup of Databases and logins.
  2. Detach all databases execpt system databases. (All users databases)
  3. Find the SQL server installation path (Root of the CD)
  4. Run this command:
    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLServer /SAPWD=Qwerty123 /SQLSYSADMINACCOUNTS=”administrator” /SQLCollation=SQL_Scandinavian_Cp850_CS_AS

/QUIET – Run it as a sillent installation

/action – We are running rebuilddatabase to change the server collation

/Instancename – withs instance do you want to change collation on.

/SAPPW -SA password for this instance

/SQLSYSADMINACCOUNTS – An administration account, normally the run you are running this from. The user should be administrator of the SQL Server

/SQLCollation – withs collation should you change to.

 

Ahsay restore Microsoft SQL (MSSQL) server database

If you want to restore a Microsoft SQL database, from a fuld backup, and put some transaction log file into it.  (This backup has backup by ahsay)

This is the why to do it:

  1. Start Microsoft SQL Server Management Studio
  2. Right click on Databases, and select restore database

  3. Type a database “To database”, and select from device , and press the butten with the 3 dots (…)

  4. Select file, and then click Add

  5. Select the database file you want to restore, and click ok

  6. Then select options, and click “Leave the database non-operational, and do not roll back uncommitted transactions. (Restore with NORECOVERY), then click OK
  7. Start a new query, and type this (Change it to yours database and files).
  8. RESTORE LOG RestoreTest
    FROM DISK = ‘F:\RestoreTest\2011-09-13(09-00-00)_LOG_RestoreTest_2011.bak’
    WITH NORECOVERYRESTORE LOG Farma_test
    FROM DISK = ‘F:\RestoreTest\2011-09-13(10-00-00)_LOG_RestoreTest_2011.bak’
    WITH NORECOVERY

    RESTORE LOG Farma_test
    FROM DISK = ‘F:\RestoreTest\2011-09-13(11-00-00)_LOG_RestoreTest_2011.bak’
    WITH NORECOVERY

    RESTORE LOG Farma_test
    FROM DISK = ‘F:\RestoreTest\2011-09-13(12-00-00)_RestoreTest_2011.bak’
    WITH NORECOVERY

  9. When you have takende the sekund last backup file, just type this:
  10. RESTORE LOG Farma_test
    FROM DISK = ‘F:\RestoreTest\2011-09-13(13-00-00)_RestoreTest_2011.bak’
    WITH RECOVERY