问题标签 [sql-variant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2374 浏览

entity-framework - 实体框架模型设计器和 SQL_Variant 数据类型的问题

我有一个表,其中有一个 SQL_Variant 类型的列和一些其他类型的列,如 int、bigint、... 当我将此表添加到 edmx 文件时,它会添加除 SQL_Variant 类型列之外的所有列。是否有错误或者我必须做一些事情来添加该列?

0 投票
5 回答
336 浏览

sql - 在 SQL Server 中定义可能包含整数或字符串的列的最佳方法是什么?

我有一种情况,相同类型的两个对象具有不同类型的父对象。下面的伪代码最好地解释了这种情况:

更复杂的是,TypeB 和 TypeC 可能具有不同类型的主键,例如,以下断言可能为真:

我的问题是在 SQL Server 中定义这种父子关系的最佳方法是什么?我能想到的唯一解决方案是定义 TypeA 表有两列 - ParentId 和 ParentType,其中:

  • ParentId 是 sql_variant - 能够同时保存数字和字符串
  • ParentType 是字符串 - 保留父类型的程序集限定名称。

但是,当我基于 sql_variant 定义用户数据类型时,它将字段大小指定为固定的 8016 字节,这似乎是太多了。

必须有更好的方法。任何人?谢谢。

0 投票
2 回答
956 浏览

sql-server - SQL Server 中 sql_variant 列开销的字节成本是多少?

我有一个表,其中包含许多具有 15 位精度的浮点数据类型的列。每列消耗 8 个字节的存储空间。大多数情况下,数据不需要这种精度,可以存储为真实数据类型。在许多情况下,该值可以为 0,在这种情况下,我可以不用存储单个字节。

我的目标是优化空间存储需求,这是我在使用 SQL Express 4GB 数据库大小限制时面临的问题。

如果 byte、real 和 float 数据类型存储在 sql_variant 列中,那么存储这些值显然会产生一些开销。这种间接费用的成本是多少?

然后,我需要评估是否真的会节省大量空间(或不会)切换到使用 sql_variant 列数据类型。

谢谢, 艾伦

0 投票
1 回答
1011 浏览

sql-server-2008 - 我无法将 sql_variant 字段与 IS NULL 运算符进行比较

我的意思是当列类型时我不能查询空值sql_variant

例如docsdate表如下所示:

当查询像select * from docsdate where value is null 没有返回行时

任何想法?

0 投票
2 回答
1045 浏览

sql-server-2005 - SQL 2005 - 变体参数问题

我正在开发一个功能,该功能将被不少于 10 个 SProc 使用,并且一旦解决,它可能会增长。

我遇到的问题是我不想为每个数据类型开发一个函数,这就是为什么SQL_VARIANT数据类型看起来非常方便操作的原因。我知道可以ISNULL检查数据类型,但我也想检查传递的值是否是有效数字,但该ISNUMERIC函数不起作用SQL_VARIANT,我不太确定该SQL_VARIANT_PROPERTY函数。

到目前为止的代码:

0 投票
1 回答
4168 浏览

sql-server - 使用 SqlBulkCopy 插入 sql_variant 列时如何设置列类型

我正在使用 SqlBulkCopy 从 .net DataTable 对象插入/更新到包含 sql_variant 列的 SQL Server 表。但是,当我需要的是“datetime2”时,SqlBulkCopy 坚持将放入该列的 DateTime 值存储为 sql 类型“datetime”。

我的 DataTable 定义如下:

然后我把一些需要'datetime2'来存储的数据放在那里。

然后我使用 SqlBulkCopy 将该数据导入 Sql Server:

如果数据表中存在超出 sql 'datetime' 类型范围的 DateTime 值(例如 '1/1/0001'),我的批量复制将失败。这就是为什么该列需要是“datetime2”类型的原因。

当您编写插入到 sql_variant 列中的普通插入语句时,您可以使用 CAST 或 CONVERT 来控制变体列的类型。例如:

然后,如果您要显示变体列的实际类型,如下所示:

您会看到它确实被存储为“datetime2”。

但是我正在使用 SqlBulkCopy,据我所知,没有地方可以告诉它 .net DateTime 对象应该存储在“datetime2”类型的列中,而不是“datetime”类型的列中。据我所知,DataTable 对象上也没有地方声明它。谁能帮我弄清楚如何实现这一目标?

0 投票
0 回答
349 浏览

.net - 将表值参数中的数据从 .NET 显式转换为 T-SQL

我需要从 VB.NET 调用一个采用表值参数的存储过程。表结构具有三列,其中一列是sql_variant.

DataTable我想传递给这个 SP 的列中有一些s stringsql_variant可以很好地从 T-SQL -> .Net 转换,但反之则不行。

问题是它正在转换stringnvarchar(max)与 不兼容的sql_variant,但据我所知,转换为nvarchar(len(s))就可以了。

那么,我可以将 a 中的某些单元格显式转换为隐式转换为有限长度DataTable的类型吗?或者,我可以更改这些 .NET 类型隐式转换为 SQL 类型的方式吗?nvarchar

提前感谢您的帮助!
安迪

0 投票
1 回答
449 浏览

entity-attribute-value - EAV 中的 SQL_Variant 或单独的数据类型值?

我们sql_variant在 EAV 中使用数据类型作为值,但我认为最好为每个数据类型值使用一个表,因为sql_variant它是 8000 字节,我担心这种数据类型的价值很大。

你的想法是什么?他们哪个更好?

比X

0 投票
2 回答
4049 浏览

c# - 将 sql_variant 与实体框架 4 一起使用

我的用例非常简单。我有一个小桌子,里面有一列像这样:

我创建了一个实体框架模型(.edmx 文件),它跳过了该列说:

不支持数据类型“sql_variant”;表 'databaseFoo.dbo.Foobar' 中的列 'dtgTestValue' 被排除在外。

我需要能够在此特定列中读取和写入值。关于如何处理这个相当简单的用例有什么建议吗?

0 投票
0 回答
166 浏览

linq - 带有 Any 和 sql_variants 的 linq

我对 sql_variants 有疑问

我有 2 张桌子和一个 DTO

我喜欢从 tbale 1 中选择所有内容,如果在 table2 中为表 1 的 id 输入了值,我想从那里获取值。这适用于字符串(或至少一个 'wert' 列作为字符串。但如果两个 'wert' 列都是 sql_variants,我会得到令人讨厌的输出:

作为我显示内容的网格内的文本。

这是一些示例代码

“AS [value]”看起来“奇怪”

有人能告诉我为什么这个查询不适用于 sql_variants 吗?

谢谢你

_rene

哦,我刚刚意识到:Linq 正在执行 2 个额外的查询(对于第二个表中的每个条目:

似乎这两个值都作为对象列表合并到返回的 DTO

编辑:好的,我得到了这个工作,但没有使用 .Any 但左外连接

但是,很高兴知道为什么.Any“解决方案”不起作用