1
我期待通过存储过程,看到很多线,如:除ISDATE之外,检查LEN和ISNULL是否有用?
case when len(isnull(INVOICE.INVOICE_DATE,'')) > 0
and isdate(INVOICE.INVOICE_DATE) = 1
then convert(datetime,INVOICE.INVOICE_DATE)
else null end
和
case when len(isnull(SHIPMENT.NET_AMOUNT_DUE,'')) > 0
and isnumeric(SHIPMENT.NET_AMOUNT_DUE) = 1
then convert(money,SHIPMENT.NET_AMOUNT_DUE)
else null end
我不明白为什么ISNULL
和LEN
检查是永远存在的。我缺少一些好处吗?相反,对代码当前的编写方式是否有任何不利影响?
你应该问更大的问题是,“为什么不INVOICE_DATE日期/时间类型?“ –
@AaronBertrand我仍然深入研究整个过程,但本质上这是大量输入的一部分,数据来自XML。它看起来以前它是作为'varchar'直接拉入的,然后在这一点检查类型。 –