使用 Dapper 从表变量中检索 OUTPUT 值

问题描述 投票:0回答:1

我有一个 SQL Proc,它在不匹配时使用 MERGE 语句进行 INSERT,并且 OUTPUT 值存储在表变量中

  INSERT
            (
                [Code],
                [BenchmarkCode],
                [ExternalCode],
                [DefinitionId]
            )           
            VALUES
            (
               Source.Code, Source.BenchmarkCode, Source.ExternalCode, Source.DefinitionId
            )
            OUTPUT inserted.Id, inserted.DefinitionId, inserted.PortfolioCode, inserted.BenchmarkCode, inserted.ExternalCode 
INTO @inserted_values

如何使用 DAPPER、IDbAdapter 从 @inserted_values 获取值

c# sql dapper
1个回答
-1
投票

要在 SQL 中使用 Dapper 执行存储过程后从 @inserted_values 表变量中检索值,您可以结合使用 SQL 命令和 Dapper 的 Query 方法。具体方法如下:

假设您有一个名为 YourStoredProcedureName 的存储过程,您可以使用 Dapper 执行它,然后查询 @inserted_values 表变量以获取插入的值。

DECLARE @inserted_values TABLE (
    Id INT,
    DefinitionId INT,
    PortfolioCode VARCHAR(100),
    BenchmarkCode VARCHAR(100),
    ExternalCode VARCHAR(100)
);

-- Execute the stored procedure
EXEC YourStoredProcedureName;

-- Retrieve values from the @inserted_values table variable
SELECT Id, DefinitionId, PortfolioCode, BenchmarkCode, ExternalCode
FROM @inserted_values;

此 SQL 脚本首先声明一个表变量 @inserted_values,其结构与存储过程的 OUTPUT 子句中使用的结构相同。然后,它执行存储过程 YourStoredProcedureName,该过程用插入的值填充表变量。最后,它从表变量中选择值。

© www.soinside.com 2019 - 2024. All rights reserved.