Значения границ раздела, как показано в документации CREATE PARTITION FUNCTION , могут быть одного из многих различных типов:
Все типы данных действительны для использования в качестве столбцов разделения, кроме текста, ntext, image, xml, отметки времени, varchar (max), nvarchar (max), varbinary (max), псевдонимов данных или пользовательских данных CLR типы.
И их фактический тип данных хранится в sys.partition_parameters .
Но если кто-то выбирает их из sys.partition_range_values , то поле value
имеет тип SQL_VARIANT
(и по понятной причине, очевидно).
Да, SQL_VARIANT
(как уже говорилось) сопоставляется с object
в .NET.
Если вам нужно проверить NULL, сравните объект с DBNull.Value
.
Если вы хотите знать базовый тип значения в объекте (скорее всего, оно не будет SQL_VARIANT
/ object
), используйте метод GetType()
:
if (aVariant.GetType() == typeof(SqlInt16))