table-valued-parameters相关内容

表值参数的排序顺序是否保证保持不变?

我需要知道是否需要将排序列添加到我的自定义表类型中,然后我可以使用该列进行排序,或者我是否可以相信,即使没有这样的列,参数的顺序也保持不变。 这是我的类型: CREATE TYPE [dbo].[VwdCodeList] AS TABLE( [VwdCode] [varchar](50) NOT NULL ) 这是其中一个使用它的SQL: /// ..

过程中表值参数中的标识列,如何定义 DataTable

是否可以将带有“[int] IDENTITY(1,1)"类型列的“table"类型参数传递给过程,并使用作为输入参数传递的DataTable对象执行此存储过程? 我收到以下错误:“插入到表变量上不允许的标识列.表值参数\"@xxxxx\"的数据不符合参数的表类型." 我能找到的唯一相关评论是“如果您在表值参数中为标识列提供值,则必须为会话发出 SET IDENTITY_INSERT 语 ..
发布时间:2022-01-23 22:18:46 其他开发

自动递增 SQL 值

根据我现在工作的一家公司的全球 DBA 的无限智慧,他创建了一个表,该表将 int 作为 ID 字段,但不会自动增加数字. 我从 .Net 传递一个表值参数,因为它有大约 100 行或更多行数据随时被传递,我不想杀死应用程序、敲击网络或 SQL Server. 这是我的存储过程 创建过程 sp_Insert_Supporting_Error_Info(@tvp [dbo].udt_C ..

SQL Server 中用户定义的表类型的性能

我们一直在使用 用户定义的表类型 将整数列表传递给我们的存储过程. 然后我们使用这些来连接到存储过程查询中的其他表. 例如: 创建过程 [dbo].[sp_Name](@Ids [dbo].[OurTableType] 只读)作为设置无计数选择*从一些INNER JOIN @Ids [OurTableType] ON [OurTableType].Id = SOMETABLE.Id ..

在 EF Core 2.0 中使用 DataTable 作为表值参数

[更新问题描述]我们有一个批量导入过程,我们将 IEnumerable 作为表值参数 (TVP) 传递给存储过程,因为 DataTable 类型在 EF 之前不可用核心 1.1.我们刚刚升级了我们的项目以使用 .Net Core 2.0 并开始更新代码以使用 DataTable.ExecuteSqlCommandAsync 命令开始抛出 InvalidCastException.以下是异常详情: ..

是否可以使用`SqlDbType.Structured` 在NHibernate 中传递表值参数?

我想将一组 id 传递给将使用 NHibernate 映射的存储过程.这种技术是在 Sql Server 2008 中引入的(更多信息在这里=> 表值参数).我只是不想在 nvarchar 参数中传递多个 id,然后在 SQL Server 端截断它的值. 解决方案 我的第一个临时想法是实现我自己的 IType. public class Sql2008Structured : ITyp ..
发布时间:2022-01-02 15:28:37 数据库

存储过程和实体框架 4.0 中的表值参数

我在 SQL Server 2008 中有一个名为“GetPrices"的存储过程,带有一个名为“StoreIDs"的表值参数. 这是我为此 TVP 创建的类型: CREATE TYPE integer_list_tbltype AS TABLE (n int) 我想从我的实体框架调用 SP.但是当我尝试将存储过程添加到 EDM 时,出现以下错误: 函数“GetPrices"在参数 ..

bcp/BULK INSERT 与表值参数的性能

我将不得不使用 SQL Server 的 BULK INSERT 命令重写一些相当旧的代码,因为架构已更改,我突然想到也许我应该考虑切换到存储过程改用 TVP,但我想知道它可能对性能产生什么影响. 一些可能有助于解释为什么我问这个问题的背景信息: 数据实际上是通过网络服务传入的.Web 服务将一个文本文件写入数据库服务器上的共享文件夹,然后执行BULK INSERT.这个过程最初是在S ..

如何将表值参数从 .net 代码传递给存储过程

我有一个 SQL Server 2005 数据库.在一些过程中,我将表参数作为 nvarchar(以逗号分隔)传递给存储过程,并在内部分成单个值.我将它添加到 SQL 命令参数列表中,如下所示: cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo"; 我不得不将数据库迁移到SQL Se ..

如何使用表值参数插入多行然后返回它们的 ID?

在我的应用程序中,我需要将大量 (100+) 行插入到数据库中.一旦他们被插入到数据库中,我需要插入他们的孩子,这些孩子有一个外键引用回到孩子们. 我想知道是否有一种方法可以编写一个可以插入所有这些行并将它们的 ID 返回到我的应用程序的存储过程? 解决方案 您已经用表值参数标记了您的问题 - 您可以将这些参数传递给存储过程以插入到数据库中. 您可以使用OUTPUTINSERT ..
发布时间:2021-09-10 19:14:53 其他开发

调用存储过程时,如何在表值参数中包含 RowVerson 列?

如果我有一个包含 RowVersion 列的 SQLDataRecord,如下面的代码所示.我总是收到 SQL Server 错误 8052 传入的表格数据流 (TDS) 远程过程调用 (RPC)协议流不正确.表值参数 %d ("%.*ls"),行%I64d,第 %d 列:数据类型 0x%02X(用户定义的表类型)时间戳列必须是默认值. 我是否将 RowVersion 值设置为 nul ..

将测试数据传递给 SQL 中的表值参数

是否可以使用 SQL EXEC 将数据传递给存储函数的表值参数,如果可以,如何传递? 我知道如何从 C# 传入数据.我使用表值参数的四个存储过程之一没有产生预期的结果.我想从 SQL 服务器管理工​​作室执行我的 proc 以进行调试,但我无法找到正确的语法,如果这样的语法存在的话.我在文档中没有找到任何相关的内容. 我的类型表: CREATE TYPE [MyNameSpace]. ..
发布时间:2021-08-30 19:40:40 数据库