10ecdfa2e4
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>
77 lines
2.5 KiB
Transact-SQL
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 |