创建具有通用数据类型的列?
Create a column with universal data type?
有没有办法创建具有 "universal" 数据类型的列?
我想要的是每一行可以有不同数据类型的列。
对于每个插入,想法是设置数据类型(nvarchar、int、bigint、float、decimal),然后插入值。
我已经看到 Json 数据类型用于在 Sql 中实现列的可变数据类型,这为您提供了 Sql 通常不提供的灵活性。您可以拥有类型为 Json 的列,然后输入 {"value": myBigInt} 或 {"value": "myVarChar"}.
您可以使用 sql_variant 数据类型来存储各种 SQL 服务器支持的数据类型的值。
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
有没有办法创建具有 "universal" 数据类型的列? 我想要的是每一行可以有不同数据类型的列。
对于每个插入,想法是设置数据类型(nvarchar、int、bigint、float、decimal),然后插入值。
我已经看到 Json 数据类型用于在 Sql 中实现列的可变数据类型,这为您提供了 Sql 通常不提供的灵活性。您可以拥有类型为 Json 的列,然后输入 {"value": myBigInt} 或 {"value": "myVarChar"}.
您可以使用 sql_variant 数据类型来存储各种 SQL 服务器支持的数据类型的值。
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