问题标签 [table-variable]

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 投票
1 回答
530 浏览

tsql - 如何将存储过程中的字段子集添加到表变量?

我收到以下错误:“列名或提供的值的数量与表定义不匹配。”

是否有一种简单的方法可以从 GetData 获取子集,而无需显式声明表变量声明中的所有字段?

0 投票
2 回答
3140 浏览

sql-server - 使用表变量时,公用表表达式变慢

我一直在尝试以下(简化的)CTE。使用表变量 () 时,查询会在我取消之前运行几分钟。任何其他被注释掉的方法都会在不到一秒的时间内返回。

如果我用 INNER JOIN 替换整个 WHERE 子句,它也很快。

任何想法为什么使用表变量会运行得这么慢?

FWIW:数据库包含 250 万条记录,内部查询返回 2 条记录。

这是从使用表变量时开始的。查询运行时间超过 17 分钟: 在此处输入图像描述

XML 格式的执行计划

临时表:https ://docs.google.com/open?id=0B66I-fxlyEtEZEthV3ZaWlNLWXM

表变量:https ://docs.google.com/open?id=0B66I-fxlyEtEbUFZa3RJejFCTkk

0 投票
3 回答
2128 浏览

sql-server - 立即执行的 SELECT 语句,需要永远插入表变量

我在下面有以下 SQL 代码。完成需要很长时间,但如果我只运行SELECT DISTINCT ID, ParentID FROM Y WHERE ID IN (3,4),它会立即完成。

这是怎么回事,这毫无意义。

0 投票
3 回答
133 浏览

sql - 在 SQL 中返回或输出 @tableVariable

是否可以在 SQL Server 中返回或输出 @tableVariable?
例如对于以下存储过程,如何返回 @TSV 表变量?

0 投票
2 回答
28088 浏览

sql - 使用表变量将多行插入 SQL Server 表

我目前正在使用 SQL Server 2008,并且正在尝试使用表变量创建一个语句以将多行插入表中。就目前而言,我必须在 4 个不同的位置(2 个选择语句、1 个插入和 1 个更新)插入要添加的信息,但希望能够创建一个表变量,所以我只需要输入信息一次。任何帮助/建议将不胜感激。

这是我试图改变的一个例子。

0 投票
2 回答
10075 浏览

sql - 从表变量中获取列的确定名称

我可以这样声明一个表变量:

如果我随后执行以下命令,我会看到类似于以下内容的表名:“#468862B0”

如果我立即执行:

我看到了我在上面为表变量声明的列。

我的问题是,有没有办法将这些列与我在“@tv_source”上方的表声明中声明的名称明确关联?

在普通表中,您会看到实际名称,但如上所述,表变量会变形为十六进制值(顺便说一句,它是 object_id 的十六进制值)。

0 投票
0 回答
163 浏览

sql-server-2005 - 是否可以使用游标遍历表变量?

在 SQL Server 2005 中,是否可以使用游标遍历表变量?

0 投票
1 回答
3138 浏览

c# - 将表列值存储到变量中(SQL Server)

我已经被这个问题困扰了一段时间:我试图在特定条件下从表(数据库)中的列中保存一个值。

在下面的代码中,我试图将文本框 (sUserName) 的输入与表 (aspnet_Membership) 中的列 (UserName) 中的值进行比较。如果这些值相等,我想在列中获取特定的电子邮件值并将其保存为字符串变量。

如果 UserName(列)不等于 sUserName(文本框),那么我想显示一条错误消息(else 语句)。电子邮件和用户名列在同一个表中

0 投票
7 回答
11918 浏览

sql - 非常慢的 DELETE 查询

我遇到了 SQL 性能问题。由于突然的原因,以下查询非常慢:

我有两个列表,其中包含某个表的 ID。如果 ID 已存在于第二个列表中,我需要从第一个列表中删除所有记录:

这两个列表可能包含超过 10.000 条记录。在这种情况下,两个查询的执行时间都超过 20 秒。

执行计划也显示了一些我不明白的地方。也许这解释了为什么它这么慢: 两个查询的查询计划

我用 10.000 个连续整数填充了两个列表,因此两个列表都包含值 1-10.000 作为起点。

如您所见,@IdList2 的两个查询显示实际行数为 50.005.000 !!。@IdList1 是正确的(实际行数为 10.000)

我知道还有其他解决方案如何解决这个问题。就像填写第三个列表而不是从第一个列表中删除一样。但我的问题是:

为什么这些删除查询这么慢,为什么我会看到这些奇怪的查询计划?

0 投票
3 回答
9114 浏览

merge - 如何在 SQL Server 中使用变量创建 MERGE 语句

我正在尝试创建一个包含merge语句的存储过程。我希望该merge语句能够使用该变量@TargetTable作为目标,但它要求我提供一个表变量。这是我的代码:

我尝试通过@TargetTable作为数据之一传递来使用表变量,并认为可以@TargetTable从临时表中使用,但我不知道如何编写代码

我只看到了说明目标表而不是变量的示例。

有没有办法做到这一点?

提前致谢