Есть ли какие-либо преимущества использования 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) обратно клиенту, делающему вызов (ой)! Но разве я не могу привести его к его типу, прежде чем вернуть? Очевидно, мой код должен быть скорректирован, чтобы хранить значение как объект вместо строкового значения. Я думаю, каковы преимущества / недостатки использованияsql_variant против какого-то другого типа в моей нынешней ситуации? Да, и стоит упомянуть, что все, что я планирую сохранить, это datetime, строки и числовые типы (int, decimal и т. Д.) В столбце значений; Я не планирую хранить и блобить или изображения и т. Д.

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

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