问题标签 [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 回答
1531 浏览

sql-server - T-SQL 中具有表参数的存储过程

表参数作为 OUTPUT

我想将一个表变量传递给一个具有表参数作为输出的过程,但不是只读的!我希望能够在 PROC 中修改该参数。这可能吗?如果不可能,还有其他方法可以做到这一点吗?

谢谢!

0 投票
1 回答
45 浏览

sql-server - 在 PROC 中将表参数定义为 OUTPUT

在 PROC 中将表参数定义为 OUTPUT

如何在 PROC 中将表参数定义为 OUTPUT 而不是 READONLY?如果不可能,还有其他方法可以做到这一点吗?

谢谢!

0 投票
1 回答
287 浏览

c# - SQL Server IF..ELSE 不在 Windows 应用程序中显示

我有这个存储过程:

哪个有IF..ELSE执行不同的事情取决于给定的代码:

我在 SSMS 中执行代码,它运行良好。但是当我尝试在 C# Windows 应用程序中使用代码时,它没有得到任何价值......这怎么可能?我错过了什么吗?

只有这个存储过程没有返回表值......

我尝试使用临时表,表变量,他们仍然没有返回表值......

这是 C# 代码:

这是我将 C# 连接到 SQL Server 的程序的一部分

  • SMSS 中的所有表都返回值。
  • 所有表变量都在 SMSS 中显示结果。
  • 结果未显示在使用 ADOAdapter 的 C# Windows 应用程序上。
  • 我尝试使用临时表和表变量,但没有用。
  • 我试过不使用IF..ELSE,没有用。
0 投票
1 回答
75 浏览

sql-server - While 子句中的性能问题

大家好,

提前为篇幅道歉。不过,这实际上很有趣。

昨天我写了一个让我半自豪的 SQL 脚本,因为我认为它非常聪明。结果它被性能问题毁了,因此我什至无法测试它,所以它甚至可能没有做我认为的sigh

这个问题最好用一个例子来解释:

A栏| B栏| C栏| D栏

使用此表,我需要: 1. 从第一个开始,如果 A 列中的值匹配,则使用其后的数据更新该行,2. 如果匹配,则在更新后删除第二行,以及 3. 继续如果没有匹配到下一行并重新运行相同的过程。

如果匹配,则较高的行将根据以下内容进行更新:

  1. A栏:无
  2. B 列:如果两个值相同,则将值合二为一,否则写“多个”
  3. C列:保持两者之间较早的日期,
  4. D列:保留两者之间的较晚日期,

然后我删除下一行。

我的示例应导致以下结果:

A栏| B栏| C栏| D栏

为此,我创建了两个表变量,将相同的数据插入到两者中,然后循环通过第二个 (@ScheduleB) 寻找匹配项以更新第一个表 (@ScheduleA) 中的行。然后我删除了@A中行下方的行(因为它与B相同)。最后,当没有匹配时,我移动到@A 中的下一行以重新开始该过程。至少那是代码应该做的——见下文。

问题是性能很糟糕。我考虑过使用光标,但不知道性能是否会有所帮助。

有什么建议么?

编辑:为了澄清,B 列不是整数列,我只是以此为例,因为卡片很容易理解。从那以后,我更新了该列以包含 K。

0 投票
4 回答
22024 浏览

debugging - 如何在 MS SQL Management Studio 2012 的调试会话期间查看表变量中的数据?

我想使用 SSMS 2012 调试复杂的 T-SQL 脚本。

我可以在调试模式下运行脚本并放置断点,以及单步执行我的脚本,但我看不到存储在我的表变量中的值。

Locals窗口中,我看到了所有这些变量,但它们的值显示为(table)

当地人窗口

无法通过上下文菜单或单击变量来查看变量的内容。

我尝试使用Immediate Window对表变量运行查询,但这似乎也不起作用。

即时窗口

知道如何在调试会话中从表变量中获取值吗?

0 投票
2 回答
10534 浏览

sql-server - 为什么临时表比连接的表变量快?

为什么在 SQL Server 中,临时表的连接速度比表变量快?

注意:在这两种情况下,表都有 PK,并且这些表通过 PK 与其他“物理”表连接。

0 投票
8 回答
167804 浏览

sql-server - 表变量错误:必须声明标量变量“@temp”

我正在努力实现:

但我收到以下错误:

必须声明标量变量“@temp”。

我究竟做错了什么?

0 投票
1 回答
1975 浏览

sql-server - 重用 t-sql 表变量或克隆其结构

我正在编写存储过程来对不同存储过程的结果进行分页。我通过执行存储过程并将结果插入表变量来做到这一点:

我需要过滤结果并将它们存储在某个地方,因为我将在至少两个地方使用过滤结果:计算所有记录并实际分页。理想情况下,我想重用 @allResults 表,因为过滤后我不再需要它的内容。类似于:

我不确定如何在过滤表格的同时截断表格。这就是为什么我创建了具有相同结构的第二个表变量:

这不是一个糟糕的解决方案,而且它有效。但我想知道我可以重用表变量的定义吗?看起来像:

有没有办法做到这一点?也许有一种方法可以克隆表变量?我想可以使用带有输出子句的删除来实现同时删除和过滤,但我不确定我应该如何编写它。

我讨厌重复代码。也许您知道一个简单的解决方案:)

0 投票
1 回答
169 浏览

sql - 在 Sql Server 中将集合作为参数传递时使用 IN 子句

查询给出 O/p 为

物品尺寸NM

(colName)

'U','V','X','Y'

但是当我在我所做的代码中使用它作为 IN Query 的输入时。它没有给出相同的结果集。为什么会发生这种情况...?表 MstItemSize 具有正确的数据。

  1. 插入到@tblRingSize 从 dbo.SplitStrings_CTE 中选择项目(@ringSize,',');

  2. 从 MstItemSize 中选择 ItemSizeNm,其中 SizeTypeNm ='Ring' 和
    ItemSizeNm
    in --('U','V','X','Y')

    ( select Replace ( (select STUFF( (select ''',''' + ringSize from @tblRingSize For XML PATH('')),1,2,'') +'''' ) ,' ','' ))

  3. select Replace ( (select STUFF( (select ''',''' + ringSize from @tblRingSize For XML PATH('')),1,2,'') +'''' ) ,' ','')

0 投票
1 回答
9196 浏览

sql-server-2008 - 如何从存储过程中调用表值函数

如何调用在存储过程中返回表的函数。

我想在存储过程中使用从函数返回的表。

它是怎么做的?