Skip to content

Instantly share code, notes, and snippets.

View shaneis's full-sized avatar
🎯
The mind isn't a cup to fill but a fire to feed...my whiskey cup is empty tho...

Shane O'Neill shaneis

🎯
The mind isn't a cup to fill but a fire to feed...my whiskey cup is empty tho...
View GitHub Profile
@shaneis
shaneis / TwoTableColumnCompare.sql
Created April 20, 2017 20:49
Comparing column names between two tables.
SELECT Pivot1.ColumnName,
Pivot1.[dbo.DifferenceTable01],
Pivot1.[dbo.DifferenceTable02],
CASE WHEN [dbo.DifferenceTable01] = 1 AND [dbo.DifferenceTable02] = 1
THEN 'Both'
WHEN [dbo.DifferenceTable01] = 1 AND [dbo.DifferenceTable02] IS NULL
THEN 'Table 1 only'
WHEN [dbo.DifferenceTable01] IS NULL AND [dbo.DifferenceTable02] = 1
THEN 'Table 2 only'
ELSE 'Eh...this should not really happen'
@shaneis
shaneis / LatestSQLServerSMO.ps1
Last active June 5, 2017 12:04
Gets the latest SQL Server SMO on the system and creates the Add-Type -AssemblyName parameter
# Load the assemblies to work for the latest version of SQL Server on the machine
$AddTypeValue = Get-ChildItem -Path C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Smo\ |
Sort-Object -Property LastWriteTimeUtc |
Select-Object -ExpandProperty Name -First 1;
[string]$AssemblyValue = "Microsoft.SqlServer.Smo, Version=$($AddTypeValue.Substring(0, 8)), culture=neutral, PublicKeyToken=$($AddTypeValue.Substring($AddTypeValue.LastIndexOf('__') + 2))";
Add-Type -AssemblyName $AssemblyValue;
@shaneis
shaneis / PivotMethodTableColumnDifferencesTest.sql
Created June 22, 2017 08:34
Pivot Method Table Column Differences Test
SET STATISTICS IO, TIME ON;
GO
SELECT Pivot1.ColumnName,
Pivot1.[dbo.TableColumnDifference01],
Pivot1.[dbo.TableColumnDifference02],
CASE WHEN [dbo.TableColumnDifference01] = 1 AND [dbo.TableColumnDifference02] = 1
THEN 'Both'
WHEN [dbo.TableColumnDifference01] = 1 AND [dbo.TableColumnDifference02] IS NULL
THEN 'Table 1 only'
@shaneis
shaneis / UnionMethodTableColumnDifferences.sql
Created June 22, 2017 13:29
Union Method Table Column Differences
SET STATISTICS IO, TIME ON;
DECLARE @table1 nvarchar(50) = 'dbo.TableColumnDifference01',
@table2 nvarchar(50) = 'dbo.TableColumnDifference02';
SET @table1 = PARSENAME(@table1, 1);
SET @table2 = PARSENAME(@table2, 1);
SELECT *
FROM
@shaneis
shaneis / PowerShellMethodTableColumnDifferences.ps1
Created June 22, 2017 14:17
PowerShell Method Table Column Differences
$Table01Param = @{
ServerInstance = 'localhost\SQLServer2K16'
Database = 'Pantheon'
Query = "SELECT OBJECT_NAME(object_id) AS TableName, name AS ColumnName FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.TableColumnDifference01', N'U')"
}
$Table02Param = @{
ServerInstance = 'localhost\SQLServer2K16'
Database = 'Pantheon'
Query = "SELECT OBJECT_NAME(object_id) AS TableName, name AS ColumnName FROM sys.columns WHERE object_id = OBJECT_ID(N'dbo.TableColumnDifference02', N'U')"
@shaneis
shaneis / CreateGotAnyChange.sql
Last active July 5, 2017 16:00
Create dbo.GotAnyChange
USE Pantheon;
GO
DROP TABLE IF EXISTS dbo.GotAnyChange;
CREATE TABLE dbo.GotAnyChange
(
GotAnyChangeID int IDENTITY(1, 1),
Column1 int,
Column2 char(1),
@shaneis
shaneis / OldWayChangeCapture.sql
Created July 5, 2017 16:19
Old Way Change Capture
USE Pantheon;
GO
DECLARE @Id int = 1
-- ChangeLog data store
-- Yes, I know that they're all varchars...
DECLARE @ChangeLogTemp table
(
ColumnName varchar(100),
@shaneis
shaneis / NewWayChangeCapture.sql
Created July 5, 2017 16:35
New Way Change Capture
USE Pantheon;
GO
DECLARE @ChangeLogAsXml xml,
@Id int = 1;
DROP TABLE IF EXISTS #OutputTableNew;
CREATE TABLE #OutputTableNew
(
GotAnyChangeID int NOT NULL,
@shaneis
shaneis / DynamicChangeCapture.sql
Last active July 6, 2017 10:46
Dynamic Change Capture
USE Pantheon;
GO
DROP TABLE IF EXISTS #OutputTableDynamic;
GO
CREATE TABLE #OutputTableDynamic
(
GotAnyChangeID int NOT NULL,
OldColumn1 int NOT NULL,
NewColumn1 int NOT NULL,
@shaneis
shaneis / NewLines_CopyOutBasic.ps1
Created July 19, 2017 15:50
New Lines Copy Out Basic
$NewLineQuery = 'SELECT Notes FROM dbo.NewLineNotes'
$InvSQLParams = @{
ServerInstance = 'localhost\SQLSERVER2K16'
Database = 'Pantheon'
Query = $NewLineQuery
}
Invoke-Sqlcmd @InvSQLParams |
Select-Object -ExpandProperty Notes