Friday, 2 November 2018

Script to Rebuild all Indexes of a Database




In below script, I commented Fill Factor related changes, and If anyone wants, they uncomment it.
Please SELECT your database and execute the below script.

Note: Database REBUILD INDEX is a very costly operation and It requires an exclusive lock on table
so please aware yourself before executing it.

DECLARE @DatabaseName SYSNAME   = DB_NAME()
DECLARE @TableName VARCHAR(256) 
--DECLARE @FILLFACTOR INT = 85
DECLARE @SQL NVARCHAR(MAX) =

 'DECLARE curAllIndex CURSOR FOR SELECT TABLE_SCHEMA +
 ''.'' + TABLE_NAME AS TABLENAME  
 FROM ' + @DatabaseName + '.INFORMATION_SCHEMA.TABLES WHERE
 TABLE_TYPE = ''BASE TABLE'''  

BEGIN 
  EXEC sp_executeSQL @SQL  
  OPEN curAllIndex
  FETCH NEXT FROM curAllIndex INTO @TableName  
  WHILE (@@FETCH_STATUS = 0) 
  BEGIN  
       /* -- For using FillFactor setting. 
   SET @DynamicSQL = 'ALTER INDEX ALL ON ' + @TableName +  
   ' REBUILD WITH (FILLFACTOR = ' + CONVERT(VARCHAR,@FILLFACTOR) + ')' 
   */
   SET @SQL = 'ALTER INDEX ALL ON ' + @TableName +  
   ' REBUILD ' 
       PRINT @SQL       
       EXEC sp_executeSQL @SQL 
       FETCH NEXT FROM curAllIndex INTO @TableName  
   END   
   CLOSE curAllIndex  
   DEALLOCATE curAllIndex 
END


Happy coding !!!

Script to Find Database USER LOGIN Information

Following is the Script to find Database USER LOGIN Information:


SELECT 
SL.name AS LoginName 
,LOGINPROPERTY (SL.name, 'PasswordLastSetTime') AS PasswordLastSetTime 
,LOGINPROPERTY (SL.name, 'DaysUntilExpiration') AS DaysUntilExpiration 
,DATEADD(dd, CONVERT(int, LOGINPROPERTY (SL.name, 'DaysUntilExpiration')) 
, CONVERT(datetime, LOGINPROPERTY (SL.name, 'PasswordLastSetTime'))) AS PasswordExpiration 
,SL.is_policy_checked AS IsPolicyChecked 
,LOGINPROPERTY (SL.name, 'IsExpired') AS IsExpired 
,LOGINPROPERTY (SL.name, 'IsMustChange') AS IsMustChange 
,LOGINPROPERTY (SL.name, 'IsLocked') AS IsLocked 
,LOGINPROPERTY (SL.name, 'LockoutTime') AS LockoutTime 
,LOGINPROPERTY (SL.name, 'BadPasswordCount') AS BadPasswordCount 
,LOGINPROPERTY (SL.name, 'BadPasswordTime') AS BadPasswordTime 
,LOGINPROPERTY (SL.name, 'HistoryLength') AS HistoryLength 
FROM sys.sql_logins AS SL 
WHERE is_expiration_checked = 1 
ORDER BY LOGINPROPERTY (SL.name, 'PasswordLastSetTime') DESC


Happy Coding !!!

SQL Audits

1. sys.server_audits What it is: Lists all server-level audit objects . An audit is the top-level object that defines: Where to wri...