[英]Best way to store program state variables in SQL Server
我正在使用实体框架在C#中编写一个连接到SQL Server的应用程序。 应用程序的每个实例都共享表和一些变量(整数,字符串和bools)。
通过SQL Server中的表共享变量(int string和bools)的最佳方法是什么?
由于表具有固定类型的列,因此在C#中不丢失类型安全的情况下,一个表不会执行此操作,因为每个类型都应转换为字符串或装箱到对象。
我提出的两个解决方案是,一个表有3列( int
, varchar
, bool
),数据写入适当类型的列,或3个表有一列。
或许我完全忽略了这一点......
问题是:将完整的数据保存到SQL Server的最优雅方法是什么?
您可以使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.