Files
Fuchs_Intranet/Fuchs_Database/dbo/Stored Procedures/mfr__updt__#locations.sql
T
Stefan 10ecdfa2e4 Add Fuchs_Database SSDT project (schema source of truth)
Adds the SQL Server Data Tools project for the fuchs_fds database — tables,
table types, functions and stored procedures that the backend calls (e.g.
fds__getInvoice, fds__merge_bankingtransactions, fds__tt__bankingtransactions,
fds__admin_getReportCatalog, fis_* auth). Build/model caches (bin, obj,
*.dbmdl, *.jfm, *.user) are git-ignored.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 14:50:54 +02:00

67 lines
1.8 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[mfr__updt__#locations]
@tblname as nvarchar(50)
, @referencetable nvarchar(50)
, @tgtid bigint
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tmp [dbo].[mfr__tt__#locations];
DECLARE @tmp_cmd nvarchar(1000) = N'SELECT DISTINCT * FROM [' + @tblname + ']';
INSERT INTO @tmp EXECUTE [sp_executesql] @tmp_cmd;
WITH tmp as (
SELECT *, ROW_NUMBER() OVER (PARTITION BY [id],[Property] ORDER BY [version] DESC) as '#' FROM @tmp
), SOURCE as (
SELECT * FROM tmp WHERE [#] = 1
)
MERGE [dbo].[mfr__#locations] as TARGET
USING SOURCE ON TARGET.[Id] = SOURCE.[Id] AND TARGET.[Property] = SOURCE.[Property]
WHEN MATCHED AND (TARGET.[Version] <= SOURCE.[Version]) THEN
UPDATE
SET [Id] = SOURCE.[Id]
,[EntityId] = SOURCE.[EntityId]
,[Property] = SOURCE.[Property]
,[Version] = SOURCE.[Version]
,[AddressString] = SOURCE.[AddressString]
,[Postal] = SOURCE.[Postal]
,[City] = SOURCE.[City]
,[State] = SOURCE.[State]
,[Country] = SOURCE.[Country]
,[Longitude] = SOURCE.[Longitude]
,[Latitude] = SOURCE.[Latitude]
,[IsValidLocation] = SOURCE.[IsValidLocation]
WHEN NOT MATCHED BY TARGET THEN
INSERT
( [Id]
,[EntityId]
,[Property]
,[Version]
,[AddressString]
,[Postal]
,[City]
,[State]
,[Country]
,[Longitude]
,[Latitude]
,[IsValidLocation])
VALUES
(SOURCE.[Id]
,SOURCE.[EntityId]
,SOURCE.[Property]
,SOURCE.[Version]
,SOURCE.[AddressString]
,SOURCE.[Postal]
,SOURCE.[City]
,SOURCE.[State]
,SOURCE.[Country]
,SOURCE.[Longitude]
,SOURCE.[Latitude]
,SOURCE.[IsValidLocation]);
END