Лучший способ хранить переменные состояния программы в SQL Server - PullRequest
0 голосов
/ 15 мая 2019

Я пишу приложение на C #, которое подключается к SQL Server с использованием Entity Framework. Каждый экземпляр приложения разделяет таблицы и некоторые переменные (целые, строки и bools).

Какой лучший способ поделиться этими переменными (int string и bools) через таблицы в SQL Server?

Поскольку таблицы имеют столбцы с фиксированным типом, одна таблица не будет делать это без потери безопасных типов в C #, потому что каждый тип должен быть преобразован в строку или упакован в объект.

Два решения, которые я придумал: одна таблица с 3 столбцами (int, varchar, bool), с записью данных в столбец с соответствующей типизацией, или 3 таблицы с одним столбцом.

Или, может быть, я полностью упускаю суть здесь ..

Вопрос будет заключаться в следующем: каков наиболее элегантный способ сохранения типизированных данных на SQL Server?

1 Ответ

0 голосов
/ 15 мая 2019

Вы можете использовать SQL_Variant для этой цели

https://docs.microsoft.com/en-us/sql/t-sql/data-types/sql-variant-transact-sql?view=sql-server-2017

CREATE   TABLE tableA(colA sql_variant, colB int)  
INSERT INTO tableA values ( cast (46279.1 as decimal(8,2)), 1689)  
SELECT   SQL_VARIANT_PROPERTY(colA,'BaseType') AS 'Base Type',  
         SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',  
         SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale'  
FROM      tableA  
WHERE      colB = 1689 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...