Skip to content

Instantly share code, notes, and snippets.

@germ13
Last active July 28, 2022 17:15
Show Gist options
  • Save germ13/10443ea42c714d29fbdb5ff213c148d7 to your computer and use it in GitHub Desktop.
Save germ13/10443ea42c714d29fbdb5ff213c148d7 to your computer and use it in GitHub Desktop.
Delta for SQL
USE [DeltaA]
GO
/****** Object: StoredProcedure [dbo].[DeltaTable01] Script Date: 7/28/2022 1:26:02 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DeltaTable01] (
@table nvarchar(100)
, @PK_Column nvarchar(32) = 'Id'
, @db01 nvarchar(20) = 'DeltaA'
, @db02 nvarchar(30) = 'DeltaB'
) AS
/*
DeltaTable01 'Table01'
*/
declare @mainQuery as nvarchar(max);
declare @columnAliases as nvarchar(max);
SELECT @columnAliases = string_agg ('cte02.' + COLUMN_NAME + ' AS [' + COLUMN_NAME + '_Live] ', ', ' )
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @table;
SET @mainQuery = '
;with cte01 as(
select * from ' + @db01 + '.dbo.' + @table +
' except
select * from ' + @db02 + '.dbo.' + @table +
' ), cte02 as(
select * from ' + @db02 + '.dbo.' + @table +
' except
select * from ' + @db01 + '.dbo.' + @table +
')
select cte01.*,' + @columnAliases + ' from cte01 full outer join cte02 on cte01.' + @PK_Column + ' = cte02.' + @PK_Column +
' ORDER BY ' + @PK_Column + ', ' + @PK_Column + '_Live;'
--SELECT @mainQuery;
exec (@mainQuery);
;with cte01 as(
select * from DeltaA.dbo.Table01 except
select * from DeltaB.dbo.Table01 ), cte02 as(
select * from DeltaB.dbo.Table01 except
select * from DeltaA.dbo.Table01)
select cte01.*,cte02.Id AS [Id_Live] , cte02.Display AS [Display_Live] , cte02.Notes AS [Notes_Live] from cte01 full outer join cte02 on cte01.Id = cte02.Id ORDER BY Id, Id_Live;
    //TODO add necessary assemblies
    //TODO scaffold db1
    //TODO scaffold db2

    //TODO create web project
    //TODO reference projects
    //TODO add necessary assemblies
    //TODO inject services

    //TODO call stored procedure
    //TODO link to view
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment