簡體   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