Skip to content

Instantly share code, notes, and snippets.

View morriekken's full-sized avatar
🏠
Working from home

Rafal Ziolkowski morriekken

🏠
Working from home
View GitHub Profile
@morriekken
morriekken / csvfromrows.sql
Created June 7, 2018 07:41
SQL, Creates comma separated list from rows
WITH a AS (
SELECT 1 b
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
)
SELECT REVERSE(STUFF(REVERSE((SELECT CONCAT(b, ',') AS [text()] FROM a FOR XML PATH(''))), 1, 1, ''))
@morriekken
morriekken / getadfsinfo.sql
Last active October 31, 2019 12:23
SQL, get ADFS information about user, Active Directory
DECLARE @adfsserver VARCHAR(MAX) = 'ADFSSERVERNAME' -- Put Your ADFS Server domain name here
DECLARE @name VARCHAR(MAX) = '%%' -- Put here first and or last name
DECLARE @sql VARCHAR(MAX) = CONCAT('SELECT * FROM OPENQUERY (ADSI,''<LDAP://',@adfsserver,'>;(&(objectCategory=user)(objectClass=user));distinguishedName;subtree'') WHERE distinguishedName LIKE ''',@name,''' ')
EXEC(@sql)
@morriekken
morriekken / extractdatafromsql.ps1
Created June 7, 2018 07:53
Extracts data from MSSQL in PowelShell
$ErrorActionPreference="Stop"
if ($args.Count -le 2)
{
throw "Usage: &lt;server name&gt; &lt;db name&gt; &lt;script file&gt;"
}
$servername = $args[0]
$database = $args[1]
sqlpackage.exe /action:Extract /OverwriteFiles:False /tf:"C:\Temp\DATABASENAME.dacpac" /SourceConnectionString:"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DATABASENAME;Data Source=SERVERNAME"
@morriekken
morriekken / getssasmetadata.mdx
Created June 7, 2018 08:00
SSAS, Get metadata for cubes

--All Cubes in database SELECT [CATALOG_NAME] AS [DATABASE],CUBE_CAPTION AS [CUBE/PERSPECTIVE],BASE_CUBE_NAME FROM $system.MDSchema_Cubes WHERE CUBE_SOURCE=1

--All dimensions in Cube SELECT [CATALOG_NAME] as [DATABASE], CUBE_NAME AS [CUBE],DIMENSION_CAPTION AS [DIMENSION] FROM $system.MDSchema_Dimensions

@morriekken
morriekken / SSASDatabasesAndMembers.ps1
Created June 7, 2018 08:09
PS, Get all users, groups and roles for each SSAS database on server
[Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
$ServerName = "YOURSERVERNAME"
$Server = New-Object Microsoft.AnalysisServices.Server
$Server.Connect($ServerName)
$result += $Server.Databases | Select Name, @{Name='Roles'; Expression={$_.Roles.Name}}, @{Name='Members'; Expression={$_.Roles.Members.Name}}
$result | Select * | ConvertTo-Json -Depth 4
@morriekken
morriekken / getquerriesandplans.sql
Last active August 2, 2018 10:02
SQL, Get current waits with queries and their execution plans
SELECT
[er].[session_id],
[er].[last_Wait_type],
[est].text,
DB_NAME([er].[database_id]) [db_name],
[eqp].[query_plan],
[er].[cpu_time]
FROM sys.dm_exec_requests [er]
INNER JOIN sys.dm_exec_sessions [es] ON
[es].[session_id] = [er].[session_id]
@morriekken
morriekken / backup.bat
Created June 12, 2018 07:36
Backup folder into ZIP file name YYYYMMDD_N where N is incremental number in case there are multiple backups at the same day
@ECHO OFF & SETLOCAL
SET _archive=F:/Backups
SET /A _i=0
:file_name_loop
SET _archive_file=%date:-=%_%_i%.zip
SET /A _i+=1
IF EXIST %_archive%/%_archive_file:_0=% GOTO :file_name_loop
REM You need zip utility like: http://infozip.sourceforge.net/
@morriekken
morriekken / countfiles.bat
Created June 12, 2018 07:38
Windows, Count number of files in directory
dir /b/a-d | find /v /c "::"
@morriekken
morriekken / cleanfolder.bat
Last active July 13, 2018 07:35
Removes all but latest 2 files in the folder. Useful for removing old backups.
@ECHO OFF
FOR /F "delims=" %%d IN ('DIR /S /B /AD "E:\Backup\"') DO FOR /F "skip=2 delims=" %%f IN ('DIR /B /O-D "%%d\*.bak"') DO DEL /Q "%%d\%%f"