繁体   English   中英

在SQL Server中存储程序状态变量的最佳方法

[英]Best way to store program state variables in SQL Server

我正在使用实体框架在C#中编写一个连接到SQL Server的应用程序。 应用程序的每个实例都共享表和一些变量(整数,字符串和bools)。

通过SQL Server中的表共享变量(int string和bools)的最佳方法是什么?

由于表具有固定类型的列,因此在C#中不丢失类型安全的情况下,一个表不会执行此操作,因为每个类型都应转换为字符串或装箱到对象。

我提出的两个解决方案是,一个表有3列( intvarcharbool ),数据写入适当类型的列,或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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM