Files
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

77 lines
2.5 KiB
Transact-SQL

-- =============================================
-- Author: Dr. Stefan Ott
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[ne]
(
@value SQL_VARIANT
,@alternative SQL_VARIANT
)
RETURNS SQL_VARIANT
AS
BEGIN
DECLARE @ret SQL_VARIANT;
IF SQL_VARIANT_PROPERTY(@value, 'BaseType') = 'varchar'
BEGIN
If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 50
BEGIN
DECLARE @v1 varchar(50) = ISNULL(try_cast(@value as varchar(50)), '');
SET @ret = IIF( @v1 <> '', @v1, try_CAST(@alternative as varchar(50)));
END
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 255
BEGIN
DECLARE @v2 varchar(255) = ISNULL(try_cast(@value as varchar(255)), '');
SET @ret = IIF( @v2 <> '', @v2, try_CAST(@alternative as varchar(255)));
END
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 1000
BEGIN
DECLARE @v3 varchar(1000) = ISNULL(try_cast(@value as varchar(1000)), '');
SET @ret = IIF( @v2 <> '', @v2, try_CAST(@alternative as varchar(1000)));
END
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 4000
BEGIN
DECLARE @v4 varchar(4000) = ISNULL(try_cast(@value as varchar(4000)), '');
SET @ret = IIF( @v4 <> '', @v4, try_CAST(@alternative as varchar(4000)));
END
ELSE
BEGIN
DECLARE @v5 varchar(8000) = ISNULL(try_cast(@value as varchar(8000)), '');
SET @ret = IIF( @v5 <> '', @v4, try_CAST(@alternative as varchar(8000)));
END
END
ELSE IF SQL_VARIANT_PROPERTY(@value, 'BaseType') = 'nvarchar'
BEGIN
If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 50
BEGIN
DECLARE @nv1 nvarchar(50) = ISNULL(try_cast(@value as nvarchar(50)), '');
SET @ret = IIF(@nv1 <> '', @nv1, try_CAST(@alternative as nvarchar(50)));
END
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 255
BEGIN
DECLARE @nv2 nvarchar(255) = ISNULL(try_cast(@value as nvarchar(255)), '');
SET @ret = IIF(@nv2 <> '',@nv2, try_CAST(@alternative as nvarchar(255)));
END
ELSE If SQL_VARIANT_PROPERTY(@value, 'MaxLength') <= 1000
BEGIN
DECLARE @nv3 nvarchar(1000) = ISNULL(try_cast(@value as nvarchar(1000)), '');
SET @ret = IIF(@nv2 <> '',@nv2, try_CAST(@alternative as nvarchar(1000)));
END
ELSE
BEGIN
DECLARE @nv4 nvarchar(4000) = ISNULL(try_cast(@value as nvarchar(4000)), '');
SET @ret = IIF(@nv4 <> '',@nv4, try_CAST(@alternative as nvarchar(4000)));
END
END
RETURN @ret
END