SQL Snippets

note - most of my snippets are posted to my blog

Enable snapshot isolation for READ_COMMITTED transactions. ALTER DATABASE DatabaseName READ_COMMITTED_SNAPSHOT ON  
test for SQL Server 2005 or later IF CAST(SERVERPROPERTY('ProductVersion'AS VARCHAR) NOT LIKE '[1-8].%' 
Full script to enable snapshot isolation for READ_COMMITED transactions. IF CAST(SERVERPROPERTY('ProductVersion'AS VARCHAR) NOT LIKE '[1-8].%' 
    
BEGIN
    DECLARE 
@sql VARCHAR(8000)
    
SELECT @sql '
ALTER DATABASE ' 
DB_NAME() + ' SET SINGLE_USER WITH ROLLBACK
IMMEDIATE ;
ALTER DATABASE ' 
DB_NAME() + ' SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE ' 
DB_NAME() + ' SET MULTI_USER;
'
    
EXEC(@sql)
    
END
GO
Find a column name in a database SELECT sc.table_name
    
FROM information_schema.columns sc
            
INNER JOIN information_schema.tables st
            
ON sc.table_name st.table_name
    
WHERE st.table_type 'base table'
        
AND sc.column_name 'ColumnToFind'
    
ORDER BY sc.table_name 
 
Find string in indexes DECLARE @SEARCH_STRING VARCHAR(1000)
    
SET @SEARCH_STRING '%[.]%'
SELECT name
    
FROM sys.indexes
    
WHERE name LIKE @SEARCH_STRING
    
ORDER BY [name] 
Find string in stored proc DECLARE @SEARCH_STRING VARCHAR(1000)
SET @SEARCH_STRING '_ '
SELECT OBJECT_NAME(OBJECT_IDAS [Procedure Name]
    
FROM sys.sql_modules AS sm
    
WHERE sm.definition LIKE @SEARCH_STRING
        
AND OBJECTPROPERTY (OBJECT_ID,'ISPROCEDURE'1
    
ORDER BY [Procedure Name] 
 
Find dupes using ROW_NUMBER WITH cteDupes AS 
(
    
SELECT  ROW_NUMBER() OVER(PARTITION BY col1col2col3coln ORDER BY col1AS RN,
            *
    
FROM    someTable
)
SELECT  *
FROM    cteDupes
WHERE   RN 1
ORDER BY col1col2col3
 
Datepart to weekday string SELECT CASE DATEPART(dwdreceived)
   
WHEN THEN 'Sunday'
   
WHEN THEN 'Monday'
   
WHEN THEN 'Tuesday'
   
WHEN THEN 'Wednesday'
   
WHEN THEN 'Thursday'
   
WHEN THEN 'Friday'
   
WHEN THEN 'Saturday'
END AS WEEKDAY