I am using this syntax at various places,
CASE WHEN [dbo].[IsNullOrWhiteSpace](@MyColumn) = 1 OR [dbo].[IsNullOrWhiteSpace](Name) = 0 THEN [Name] ELSE @MyColumn END
The only change is Name and @MyColumn. But MyColumn can be any type. Any way to create a function that do this stuff but with genric type. This is what I am looking,
ALTER FUNCTION [dbo].[GetParameterOrPreviousValue]
(
@Value1 AnyType
,@Value2 AnyType
)
RETURNS AnyType
AS
BEGIN
RETURN CASE WHEN [dbo].[IsNullOrWhiteSpace](@Value1) = 1 OR [dbo].[IsNullOrWhiteSpace](@Value2) = 0 THEN @Value2 ELSE @Value1 END;
END
See the AnyType.
Update
Here is my IsNullOrEmpty,
ALTER FUNCTION [dbo].[IsNullOrWhiteSpace]
(
@Value nvarchar(MAX)
)
RETURNS bit
AS
BEGIN
RETURN CASE WHEN LTRIM(RTRIM(ISNULL(@Value,''))) = '' THEN 1 ELSE 0 END;
END
and I am using this in a UPDATE statement,
UPDATE T SET [Name] = dbo.GetParameterOrPreviousValue(@Name, Name)
,[Gender] = dbo.GetParameterOrPreviousValue(@Gender, Gender)
,[Location] = dbo.GetParameterOrPreviousValue(@Location, Location)
,[RawData] = dbo.GetParameterOrPreviousValue(@RawData, RawData)
I guess you can use sql_variant. Also what about [dbo].[IsNullOrWhiteSpace]
? Does it takes a String
type?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With