问题标签 [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.
sql - 如何在 T-SQL 中调试时查看表变量的值?
在调试期间,我们能否在 SQL Server Management Studio (SSMS) 中查看表值变量中的值(行和单元格)?如果是,如何?
sql-server - T-SQL 复制表变量
我正在尝试复制表变量:
这给了我一个错误:
我做错了什么??
谢谢,马克
c++ - SQL 2005 存储过程结果集的 ODBC 执行/获取不能使用表 @variable
我对 SQL Server 2005(本机客户端)使用 ODBC 和 C++。
我有以下简单的测试存储过程,它返回两行常量值:
ODBC 代码如下所示(简化):
SQLExecDirect() 调用返回以下信息:
然后 SQLFetch() 调用给出:
ODBC 参考文档告诉我的是我没有结果集。
所以我将存储过程更改为以下内容(例如,不使用表变量):
瞧,它有效。当然这是一个简单的测试程序,我需要执行的真正的SQL比较复杂,需要表变量,不用赘述。但是为什么不能针对第一个 SP 的结果集创建 (ODBC) 游标呢?
有谁知道如何让它工作?顺便说一句,我在环境句柄上声明 ODBC v3。我在连接句柄上尝试了不同的游标属性,但无济于事。
非常感谢您的帮助!
sql - SQL 错误:字符串或二进制数据将被截断
我有一个表变量@RQ
,我希望使用表值函数对其进行更新。现在,我认为我做错了更新,因为我的功能有效......
功能:
现在,当我运行一个简单的查询时:
我收到错误:
消息 8152,级别 16,状态 13,行 20 字符串或二进制数据将被截断。该语句已终止。
为什么?该怎么办?
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 快速执行,我有哪些选择?
提前非常感谢。
sql-server - 在存储过程中使用表变量而不是仅从表或视图中选择?
我现在正在查看似乎遵循以下行为的 sproc
与使用普通的 select 语句并跳过表变量相比,使用这种方法有什么好处吗?
sql - 在内存或 tempdb 中创建和保存的表变量?
表变量是在内存中还是在 tempdb 中创建的?短临时表也一样?
sql-server - while循环内的表变量每次都没有初始化:SQL Server
我想知道为什么 while 循环中的表变量的行为与其他变量不同。表变量只创建一次,将在整个循环中使用。但是每次循环增加时都会初始化其他变量。
查看以下代码以获取更多信息
这是一个错误?
sql-server - SELECT INTO T-SQL 中的表变量
有一个复杂的 SELECT 查询,我想从中将所有行插入到一个表变量中,但 T-SQL 不允许这样做。
同样,您不能将表变量与 SELECT INTO 或 INSERT EXEC 查询一起使用。 http://odetocode.com/Articles/365.aspx
简短的例子:
表变量中的数据稍后将用于将其插入/更新回不同的表(主要是相同数据的副本,并进行少量更新)。这样做的目的是使脚本比SELECT INTO
直接在正确的表中更易读和更容易定制。性能不是问题,因为rowcount
它相当小,并且仅在需要时手动运行。
...或者只是告诉我我是否做错了。
sql-server-2008 - 从 Access 执行 SQL-Server 2008 存储过程,传递 TABLE 变量
我需要将一个表从 Access 传递到 SQL 服务器并执行一个存储过程。
我在 Access 中使用传递查询来执行此操作。
我的直通查询:
我的存储过程:
这应该工作吗?我在存储过程中收到“TABLE 附近的语法不正确”错误。