【问题标题】:How to get SQL execution to prompt for Query Parameters?如何让 SQL 执行提示输入查询参数?
【发布时间】:2019-03-12 23:06:03
【问题描述】:

使用 Visual Studios 内置工具连接到数据库以获得 SQL 文件,您可以对数据库执行查询。

我在我的 C# 程序集中使用嵌入式查询,我使用查询参数开发这些查询,并使用 Dapper 将这些查询快速映射到对象。

这很好用,并且您在编写 SQL 时会获得智能感知,但是,您无法执行这些 SQL 文件,因为查询参数未在原始查询中定义(它们将由 Dapper 提供),但看起来它可以提示输入查询参数。

我不确定在 Visual Studio 中是否有办法做到这一点,或者是否有任何技巧可以做到这一点。

我可以将它们放在 SQL 文件中进行测试,但我不太喜欢这个想法,因为您总是有可能不小心将它们留在文件中。

所以通常我会有一个看起来像这样的 sql 文件:-

SELECT * from Blah where Blah.Id = @Id

如果执行它会说它不知道 Id 是什么,除了在 SQL 中放一条 DECLARE 语句之外没有办法定义 Id

那么有没有办法让 Visual Studio 提示输入查询参数?还是指定查询参数而不将它们直接放入文件的技巧?

【问题讨论】:

  • 我还不明白你的情况,但是环境变量呢?
  • 我看不出你会怎么用……
  • 为什么要结束投票?

标签: c# sql visual-studio


【解决方案1】:

我已经以一种适合我的情况的方式解决了这个问题,但一般不会起作用

鉴于我将我的 SQL 作为嵌入式资源嵌入到我的代码中,当我加载 SQL 时,我可以对 SQL 进行后期处理。这意味着在我的 SQL 文件中我可以做

DECLARE @Id int = 123

-- QUERY
SELECT * from Blah where Blah.Id = @Id

现在我可以在 Visual Studio 中使用测试参数对我的数据库运行我的查询,当真正的代码从嵌入式资源加载查询时,它会在 --QUERY 注释掉之前删除任何内容。它还会仔细检查以确保没有 DECLARE 语句,因为我不倾向于在使用 Dapper 的 sql 查询中使用它们。

它提供了一个很好的工作流程,因为您可以非常快速地构建和测试您的查询。

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多