我在一些表中,通常将公司地址存储在长公司名称的列和简短格式的列中。长名称是强制性的,短名称不是强制性的。像这样:
"$type": "IqhApplicationEndEvent"
现在在许多查询中,如果要填写,我想访问短格式,否则要访问长格式。所需的功能类似于ISNULL函数,但类似于ISEMPTY函数。
到目前为止,我所做的是创建一个通用的UDF,该UDF获取优先级列,而另一个作为后备:
{
"@t": "2018-12-03",
"@mt": "{@Diagnostic}",
"Diagnostic": {
"ShutdownReason": "HostingEnvironment",
"Timestamp": "2018-12-03",
"MachineName": "local",
"AdditionalInfo": {},
"$type": "IqhApplicationEndEvent"
}
}
然后我可以这样调用函数:
public void WriteAudit(DiagnosticTest diagnostic)
{
_Logger?.Write(LogEventLevel.Information, "{@Diagnostic}", diagnostic);
}
但是我不确定这是否是最佳解决方案。当我在数百万条记录的select块内调用该函数时,是否会影响查询性能? 我最近将所有引擎更新为SQL-Server2017。有内置的内容吗?