|
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_ID) AS [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 col1, col2, col3, coln ORDER BY col1) AS RN,
*
FROM someTable
)
SELECT *
FROM cteDupes
WHERE RN > 1
ORDER BY col1, col2, col3
|
| Datepart to weekday string |
SELECT CASE DATEPART(dw, dreceived)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
END AS WEEKDAY |
| |
|
| |
|