问题标签 [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-server - T-SQL 中具有表参数的存储过程
表参数作为 OUTPUT
我想将一个表变量传递给一个具有表参数作为输出的过程,但不是只读的!我希望能够在 PROC 中修改该参数。这可能吗?如果不可能,还有其他方法可以做到这一点吗?
谢谢!
sql-server - 在 PROC 中将表参数定义为 OUTPUT
在 PROC 中将表参数定义为 OUTPUT
如何在 PROC 中将表参数定义为 OUTPUT 而不是 READONLY?如果不可能,还有其他方法可以做到这一点吗?
谢谢!
c# - SQL Server IF..ELSE 不在 Windows 应用程序中显示
我有这个存储过程:
哪个有IF..ELSE
执行不同的事情取决于给定的代码:
我在 SSMS 中执行代码,它运行良好。但是当我尝试在 C# Windows 应用程序中使用代码时,它没有得到任何价值......这怎么可能?我错过了什么吗?
只有这个存储过程没有返回表值......
我尝试使用临时表,表变量,他们仍然没有返回表值......
这是 C# 代码:
这是我将 C# 连接到 SQL Server 的程序的一部分
- SMSS 中的所有表都返回值。
- 所有表变量都在 SMSS 中显示结果。
- 结果未显示在使用 ADOAdapter 的 C# Windows 应用程序上。
- 我尝试使用临时表和表变量,但没有用。
- 我试过不使用
IF..ELSE
,没有用。
sql-server - While 子句中的性能问题
大家好,
提前为篇幅道歉。不过,这实际上很有趣。
昨天我写了一个让我半自豪的 SQL 脚本,因为我认为它非常聪明。结果它被性能问题毁了,因此我什至无法测试它,所以它甚至可能没有做我认为的sigh。
这个问题最好用一个例子来解释:
A栏| B栏| C栏| D栏
使用此表,我需要: 1. 从第一个开始,如果 A 列中的值匹配,则使用其后的数据更新该行,2. 如果匹配,则在更新后删除第二行,以及 3. 继续如果没有匹配到下一行并重新运行相同的过程。
如果匹配,则较高的行将根据以下内容进行更新:
- A栏:无
- B 列:如果两个值相同,则将值合二为一,否则写“多个”
- C列:保持两者之间较早的日期,
- D列:保留两者之间的较晚日期,
然后我删除下一行。
我的示例应导致以下结果:
A栏| B栏| C栏| D栏
为此,我创建了两个表变量,将相同的数据插入到两者中,然后循环通过第二个 (@ScheduleB) 寻找匹配项以更新第一个表 (@ScheduleA) 中的行。然后我删除了@A中行下方的行(因为它与B相同)。最后,当没有匹配时,我移动到@A 中的下一行以重新开始该过程。至少那是代码应该做的——见下文。
问题是性能很糟糕。我考虑过使用光标,但不知道性能是否会有所帮助。
有什么建议么?
编辑:为了澄清,B 列不是整数列,我只是以此为例,因为卡片很容易理解。从那以后,我更新了该列以包含 K。
debugging - 如何在 MS SQL Management Studio 2012 的调试会话期间查看表变量中的数据?
我想使用 SSMS 2012 调试复杂的 T-SQL 脚本。
我可以在调试模式下运行脚本并放置断点,以及单步执行我的脚本,但我看不到存储在我的表变量中的值。
在Locals
窗口中,我看到了所有这些变量,但它们的值显示为(table)
:
无法通过上下文菜单或单击变量来查看变量的内容。
我尝试使用Immediate Window
对表变量运行查询,但这似乎也不起作用。
知道如何在调试会话中从表变量中获取值吗?
sql-server - 为什么临时表比连接的表变量快?
为什么在 SQL Server 中,临时表的连接速度比表变量快?
注意:在这两种情况下,表都有 PK,并且这些表通过 PK 与其他“物理”表连接。
sql-server - 表变量错误:必须声明标量变量“@temp”
我正在努力实现:
但我收到以下错误:
必须声明标量变量“@temp”。
我究竟做错了什么?
sql-server - 重用 t-sql 表变量或克隆其结构
我正在编写存储过程来对不同存储过程的结果进行分页。我通过执行存储过程并将结果插入表变量来做到这一点:
我需要过滤结果并将它们存储在某个地方,因为我将在至少两个地方使用过滤结果:计算所有记录并实际分页。理想情况下,我想重用 @allResults 表,因为过滤后我不再需要它的内容。类似于:
我不确定如何在过滤表格的同时截断表格。这就是为什么我创建了具有相同结构的第二个表变量:
这不是一个糟糕的解决方案,而且它有效。但我想知道我可以重用表变量的定义吗?看起来像:
有没有办法做到这一点?也许有一种方法可以克隆表变量?我想可以使用带有输出子句的删除来实现同时删除和过滤,但我不确定我应该如何编写它。
我讨厌重复代码。也许您知道一个简单的解决方案:)
sql - 在 Sql Server 中将集合作为参数传递时使用 IN 子句
查询给出 O/p 为
物品尺寸NM
(colName)
'U','V','X','Y'
但是当我在我所做的代码中使用它作为 IN Query 的输入时。它没有给出相同的结果集。为什么会发生这种情况...?表 MstItemSize 具有正确的数据。
插入到@tblRingSize 从 dbo.SplitStrings_CTE 中选择项目(@ringSize,',');
从 MstItemSize 中选择 ItemSizeNm,其中 SizeTypeNm ='Ring' 和
ItemSizeNm
in --('U','V','X','Y')( select Replace ( (select STUFF( (select ''',''' + ringSize from @tblRingSize For XML PATH('')),1,2,'') +'''' ) ,' ','' ))
select Replace ( (select STUFF( (select ''',''' + ringSize from @tblRingSize For XML PATH('')),1,2,'') +'''' ) ,' ','')
sql-server-2008 - 如何从存储过程中调用表值函数
如何调用在存储过程中返回表的函数。
我想在存储过程中使用从函数返回的表。
它是怎么做的?