问题标签 [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 投票
0 回答
5688 浏览

sql-server-2008 - 表变量和临时表之间的巨大性能差异

我有一个UDF,提供一堆数据。使用了几个表变量。此时,没有创建索引。

使用 testdata 的运行时间约为30 秒

仅将表变量更改为临时表(在UDF, 因为#tables是不允许的),会显着减少运行时间。大约3 秒。本文解释了这些差异,但我不明白这一点,这是造成这种性能增量的原因。

无论如何,临时表是不允许的UDF,所以我可以很容易地使用SPROC. 不幸的是我不能,因为数据的目标“容器”必须是视图或表。由于第三方限制,不可更改。( erp 系统的数据是经过预处理的,必须在表格或视图中提供,例如您可以通过select <col> from <object>.

我尝试添加一个索引来创建当前使用的表变量,但运行时间并没有减少。

任何在最后将数据放入视图时实现临时表性能的提示或技巧都值得赞赏。

SQL-Query(添加了带表变量,但无法提供演示数据):

0 投票
0 回答
76 浏览

tsql - DECLARE 语句使变量成为全局变量?

为什么 DECLARE 语句使声明的变量成为全局变量?

例如:

给我:

在此处输入图像描述

它应该在所有情况下都不返回吗?

0 投票
1 回答
3996 浏览

sql - 不能调用表上的方法?表变量

我正在尝试将外部应用放在表变量上,但出现如下错误

无法调用表上的方法。

我有拆分功能,将字符串拆分为一定长度

我与包含要拆分字符串的列的表变量一起加入

查询如下 产生错误(不能调用表上的方法)

注意:代码适用于 db 中的 Real Table。

0 投票
1 回答
4283 浏览

sql-server - 如何声明两个具有相同结构的表变量?

我有以下表变量声明:

我想声明另一个具有相同结构的表变量(以便我从选择插入到第一个变量中,然后将结果复制到第二个变量中,然后我从第一个变量中逐个删除条目并返回第二个变量因此)。

我试过这个:

但 SQL Server Express 不高兴并说

消息 102,级别 15,状态 1,第 1 行 ',' 附近的语法不正确。

如何声明两个结构相同的表变量?

0 投票
1 回答
1600 浏览

.net - 将表变量从 C# 传递到 SQL Server 传递空表

从 C#(.NET 4.5,Visual Studio 2013)调用 proc,它使用 sp_executesql 传递表变量。但是,SQL Server(在 2008 Std、2008 Ent 和 2012 Std 上测试)将其作为空表传递。

我希望这里的三个语句返回相同的结果,但最后一个没有。

对我来说,显而易见的答案是不要在 proc 中将 sp_executesql 与表变量一起使用,但这段 C# 代码正是这样做的。

您能给我的任何帮助将不胜感激。谢谢!!!

0 投票
1 回答
589 浏览

mysql - 从 INT 的逗号分隔字符串创建临时表

我想在这里使用临时表和 WHILE 子句分享我的发现。我分隔了一个逗号分隔的 INT 字符串以在 IN 语句中使用。

0 投票
3 回答
5762 浏览

c# - Dapper:将行插入表变量

我最近一直在使用dapper,除了使用表变量之外,总的来说没有任何问题。

为了演示,我使用了这个线程中的一个修改示例。

此代码可以正常工作:

但这不会:

唯一的变化是使用表变量而不是临时表 ( @ instead #)。Dapper(或链中的其他任何东西?)似乎以某种方式将其与参数混合并返回“必须声明表变量@t”。

我的使用有什么问题吗,或者这是dapper 中的错误/缺失功能?

最好的问候, Kc


更新:

只是为了澄清:@t不是由 dapper 设置的参数。@t被声明为仅对当前运行的查询存在的本地表。在我看来,dapper 不应该区分任何类型的表,无论是“普通”表、本地/全局临时表还是表变量。

更多背景信息:

我真正想做的是:

  • 将 Id 列表插入索引表变量(或者如果表变量不起作用,则可能是临时表)
  • 针对我的一个持久表加入这个表并返回结果。

我的目的是在使用 WHERE IN (...) 子句从我的表中进行 SELECT 时解决性能问题

0 投票
1 回答
78 浏览

sql - How to store result of cross-table-query to a table variable

I actually found something here but I need a syntax for multiple tables. Example:

Could someone explain how can I create such custom table variable and is it possible at all? Thanks in advance!

0 投票
3 回答
66446 浏览

sql-server - 如何将表名作为存储过程的输入参数?

我在下面有一个小存储过程。

我将表名作为存储过程的输入参数,以便我计划将数据插入临时表并显示相同的数据。这只是我的项目存储过程的一个小代码块。

当我编译以下内容时,它将选择语句中的参数视为表变量并将错误抛出为:

必须声明表变量“@TableName”。

SQL:

0 投票
3 回答
1993 浏览

sql-server - 将系统存储过程的结果用作可查询表

注意:最高链接的问题并没有解决系统存储过程的问题,但它很接近。在评论者的帮助下,我得出了一个可行的答案

尝试对sp_spaceused使用如下语句,会引发错误

错误:

必须指定要从中选择的表。

和:

缺少对象或列名称或为空。对于 SELECT INTO 语句,验证每一列都有一个名称。对于其他语句,请查找空别名。不允许使用定义为 "" 或 [] 的别名。将别名更改为有效名称。

当我完全声明一个表变量时,它会按预期工作,所以在我看来,存储过程确实返回了一个实际的表。

为什么不能使用结果集为的临时表或表变量EXECUTE sp_xxx?或者:是否存在比每次都必须预定义完整表更紧凑的表达式?

(顺便说一句,在撰写本文时,谷歌搜索确切的术语,只返回一个结果)SELECT * INTO #tmp exec sp_spaceused