Есть ли какие-либо преимущества использования sql_variant по сравнению с varchar в SQL Server?

В настоящее время у меня есть настройки таблицы базы данных следующим образом (EAV - деловые причины действительны):

Id - int (PK)Ключ - уникальный, varchar (15)Значение - варчар (1000)

Это позволяет мне добавлять смешанные значения в мою базу данных в виде пар ключ / значение. Например:

1   | 'Some Text'      | 'Hello World'
2   | 'Some Number'    | '123456'
etc.

В моем коде C # я использую ADO.Net используяreader.GetString(2); чтобы получить значение в виде строки, а затем мой код в другом месте преобразовать его при необходимости, например ...Int32.ParseInt(myObj.Value);, Я'м, глядя на улучшение моей таблицы, возможно, изменив столбец значения наsql_variant тип данных, но я нене знаю, какая польза от этого будет? В принципе, есть ли преимущество, чтобы мойзначение столбец изsql_variant против?varchar(1000)

Чтобы быть более ясным, я где-то читал, что sql_variant возвращается как nvarchar (4000) обратно клиенту, делающему вызов (ой)! Но не могЯ бросил это к этомуТип S, прежде чем вернуть его? Очевидно, мой код должен быть скорректирован, чтобы хранить значение как объект вместо строкового значения. Я думаю, каковы преимущества / недостатки использованияsql_variant против какого-то другого типа в моей нынешней ситуации? Да, и стоит упомянуть, что все, что я планирую сохранить, это datetime, строки и числовые типы (int, decimal и т. Д.) В столбце значений; Я нене планируют хранить и создавать блоб, или изображения, и т. д.

Ответы на вопрос(4)

Ваш ответ на вопрос