SQL Server 2019 все еще находится в CTP, и это новая функция. Если вы нашли ошибку в ней, вы должны сообщить об этом в Microsoft, чтобы она была исправлена до выпуска ( сделано для вас здесь ).
В предыдущих версиях, если вы попытаетесь вставить его вручную, вы увидите ту же ошибку (как в урезанном примере ниже). Это из-за ограничения , обсуждаемого здесь .
WITH T(m_id,fra, til) AS
(
SELECT 1, GETDATE(), GETDATE()
)
SELECT *
FROM T
CROSS APPLY
(SELECT
SUM(DATEDIFF(D, e.FRADATO, til))
FROM
dbo.mlr_eos_avl e
) CA(result)
До тех пор, пока Microsoft не исправит этот встроенный случай, вы можете использовать
WITH INLINE = OFF
в определении скалярного UDF для отключения встраивания UDF
if (myReader["Additional"] != DBNull.Value)
{
ltlAdditional.Text = "contains data";
}
else
{
ltlAdditional.Text = "is null";
}
Прежде всего, вы, вероятно, захотите проверить наличие DBNull
, а не обычного Null
.
Или вы можете посмотреть на метод IsDBNull
Дополнительно в соответствии с приведенными предложениями вы можете сделать это непосредственно из своего запроса, например так -
SELECT ISNULL([Additional], -1) AS [Additional]
Таким образом, вы можете написать условие, чтобы проверить, является ли значение поля <0 или> = 0.
AMG - Извините, у меня был блондин. Поле «Дополнительно» было добавлено в базу данных после того, как я изначально проектировал базу данных.
Я обновил весь свой код, чтобы использовать это новое поле, однако я забыл обновить фактический код устройства чтения данных, который выполнял вызов, чтобы выбрать базу данных. поля, поэтому он не вызывал «Дополнительные»
@Joe Philllips
SQlDataReader.IsDBNull(int index) требует порядковый номер столбца. Есть ли способ проверить нули, используя имя колонки, а не ее порядковый номер?