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

sql - 如何在 T-SQL 中调试时查看表变量的值?

在调试期间,我们能否在 SQL Server Management Studio (SSMS) 中查看表值变量中的值(行和单元格)?如果是,如何?

在此处输入图像描述

0 投票
2 回答
5890 浏览

sql-server - T-SQL 复制表变量

我正在尝试复制表变量:

这给了我一个错误:

我做错了什么??

谢谢,马克

0 投票
1 回答
1968 浏览

c++ - SQL 2005 存储过程结果集的 ODBC 执行/获取不能使用表 @variable

我对 SQL Server 2005(本机客户端)使用 ODBC 和 C++。
我有以下简单的测试存储过程,它返回两行常量值:

ODBC 代码如下所示(简化):

SQLExecDirect() 调用返回以下信息:

然后 SQLFetch() 调用给出:

ODBC 参考文档告诉我的是我没有结果集。
所以我将存储过程更改为以下内容(例如,不使用表变量):

瞧,它有效。当然这是一个简单的测试程序,我需要执行的真正的SQL比较复杂,需要表变量,不用赘述。但是为什么不能针对第一个 SP 的结果集创建 (ODBC) 游标呢?

有谁知道如何让它工作?顺便说一句,我在环境句柄上声明 ODBC v3。我在连接句柄上尝试了不同的游标属性,但无济于事。

非常感谢您的帮助!

0 投票
1 回答
2471 浏览

sql - SQL 错误:字符串或二进制数据将被截断

我有一个表变量@RQ,我希望使用表值函数对其进行更新。现在,我认为我做错了更新,因为我的功能有效......

功能:

现在,当我运行一个简单的查询时:

我收到错误:

消息 8152,级别 16,状态 13,行 20 字符串或二进制数据将被截断。该语句已终止。

为什么?该怎么办?

0 投票
3 回答
1031 浏览

sql-server - SQL Server 多语句 UDF - 暂时需要存储数据的方式

我有一个相对复杂的查询,有几个自连接,适用于一个相当大的表。为了使该查询更快地执行,我只需要处理数据的一个子集。根据传递的参数,所述数据子集的范围可以在 12 000 到 120 000 行之间。

可以在此处找到更多详细信息:SQL Server CTE 在自连接中引用缓慢

如您所见,我之前使用 CTE 返回数据子集,这导致了一些性能问题,因为 SQL Server 为每个连接重新运行 CTE 中的 Select 语句,而不是简单地运行一次并重用其数据集。

另一种方法是使用临时表工作得更快(同时在 UDF 主体之外的单独窗口中测试查询)。但是,当我尝试在多语句 UDF 中实现这一点时,SQL Server 严厉提醒我,由于某种原因,多语句 UDF 不支持临时表......

但是,UDF 确实允许表变量,所以我尝试了,但性能非常糟糕,因为我的查询需要 1 分 40 秒才能完成,而 CTE 版本需要 40 秒。我认为由于此线程中列出的原因,表变量很慢:SQL Server 存储过程中插入时表变量性能不佳

临时表版本大约需要 1 秒,但由于 SQL Server 的限制,我无法将其转换为函数,我必须将表返回给调用者。

考虑到 CTE 和表变量都太慢,并且临时表在 UDF 中被拒绝,为了让我的 UDF 快速执行,我有哪些选择?

提前非常感谢。

0 投票
2 回答
856 浏览

sql-server - 在存储过程中使用表变量而不是仅从表或视图中选择?

我现在正在查看似乎遵循以下行为的 sproc

与使用普通的 select 语句并跳过表变量相比,使用这种方法有什么好处吗?

0 投票
3 回答
9007 浏览

sql - 在内存或 tempdb 中创建和保存的表变量?

表变量是在内存中还是在 tempdb 中创建的?短临时表也一样?

0 投票
4 回答
8376 浏览

sql-server - while循环内的表变量每次都没有初始化:SQL Server

我想知道为什么 while 循环中的表变量的行为与其他变量不同。表变量只创建一次,将在整个循环中使用。但是每次循环增加时都会初始化其他变量。

查看以下代码以获取更多信息

这是一个错误?

0 投票
8 回答
851364 浏览

sql-server - SELECT INTO T-SQL 中的表变量

有一个复杂的 SELECT 查询,我想从中将所有行插入到一个表变量中,但 T-SQL 不允许这样做。

同样,您不能将表变量与 SELECT INTO 或 INSERT EXEC 查询一起使用。 http://odetocode.com/Articles/365.aspx

简短的例子:

表变量中的数据稍后将用于将其插入/更新回不同的表(主要是相同数据的副本,并进行少量更新)。这样做的目的是使脚本比SELECT INTO直接在正确的表中更易读和更容易定制。性能不是问题,因为rowcount它相当小,并且仅在需要时手动运行。
...或者只是告诉我我是否做错了。

0 投票
1 回答
1091 浏览

sql-server-2008 - 从 Access 执行 SQL-Server 2008 存储过程,传递 TABLE 变量

我需要将一个表从 Access 传递到 SQL 服务器并执行一个存储过程。

我在 Access 中使用传递查询来执行此操作。

我的直通查询:

我的存储过程:

这应该工作吗?我在存储过程中收到“TABLE 附近的语法不正确”错误。