【问题标题】:Can Table-Valued Parameters be temporary表值参数可以是临时的吗
【发布时间】:2019-03-13 17:15:19
【问题描述】:

我正在尝试创建一个存储过程,它的参数可以采用未知数量的值。为此,我使用了一个可以查询的表值参数。我想知道是否可以让表值参数是临时的,并在执行存储过程后将其删除?我尝试阅读它,但从我发现的内容中没有明确说明答案是“是”还是“否”。

如果我得到任何帮助,我将不胜感激。谢谢!


我使用的是 SQL Server 2016。

我声明如下:

CREATE TYPE [schema].[tvp] AS Table ( value INT NULL)  
 GO  

CREATE PROCEDURE [schema].[procedure] ( 
@Param [tvp] READONLY 
) AS BEGIN ..

【问题讨论】:

  • 我认为这回答了你的问题,stackoverflow.com/questions/5653520/…
  • 您使用的是什么版本的 SQL Server?如果您使用的是 2016 或更新版本,则可以通过 NVARCHAR 参数将数据作为 JSON 传递。我的团队已经停止使用大部分 TVP 来支持这一点。
  • 如何声明表值参数?您是否将其定义为用户定义的表类型?
  • @MadBert 感谢您的帮助,我会调查一下。
  • @squillman 我使用的是 2016 年。

标签: sql sql-server tsql stored-procedures table-valued-parameters


【解决方案1】:

表值参数是自动临时的,在存储过程执行后将被删除到 SQL Server 上。在 .net 方面,该参数也将在正常的“垃圾处理”中删除。

【讨论】:

    【解决方案2】:

    参数是参数——它们只是临时保存值。调用存储过程时适用于 int 或 varchar 参数的内容也适用于 TVP。

    【讨论】:

      猜你喜欢
      • 2012-04-08
      • 1970-01-01
      • 2010-10-12
      • 2017-09-15
      • 2017-01-26
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多