是否可以在语法上突出显示内联 SQL

本文关键字:显示 SQL 语法 是否 | 更新日期: 2023-09-27 18:37:10

很多时候我写一些这样的SQL:

string sql = @"
   -- Multi-line SQL
";

在不争论这种方法是好是坏的情况下,有人可以告诉我在Visual Studio中突出显示此SQL的最佳方法是什么?

我能想到的一种方法是创建单独的.sql文件,然后将其用作字符串,以便在编辑原始SQL时,Visual Studio识别这是一个SQL文件并在语法上突出显示它。

这似乎是解决简单问题的繁琐方法。有更简单的解决方案吗?

是否可以在语法上突出显示内联 SQL

> JetBrains 刚刚发布了 ReSharper 2016.2,它支持内联语法突出显示和正则表达式和 html 的智能感知,并带有 /*language=html*/ 等代码注释。

我发现这是一个了不起的功能,(我相信)可以很容易地扩展到支持 SQL 和几乎任何其他语言。

我在这里添加了一个功能请求:https://youtrack.jetbrains.com/issue/RSRP-460656

这并不能回答您的问题,但我希望他们会考虑添加这样的功能,因为内联 SQL 在代码中很常见(即使用 Dapper)。

有一个Visual Studio扩展(用于VS 2010和2012)。 它确实存在您想象的问题,例如在不包含 SQL 的字符串中突出显示 SQ: 关键字。 根据您所做的工作类型,您可能仍然希望这样做,而不是在 SQL 中没有突出显示。

http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b

我可以推荐的一件事是将Visual Studio中的SQL关键字颜色更改为普通字符串颜色的变体。 这样,突出显示在正确时很有用,但在突出显示实际上不包含 SQL 的字符串中的单词时不会分散注意力。

它不会像别人告诉你的那样工作。VS 如何知道哪些字符串是 sql,哪些不是。如果您不想使用 sql 文件,您可以制作自己的文件扩展名,例如".sqlx"或其他东西,然后在 VS 属性中为此扩展名分配 SQL 编辑器,以便 VS 知道对其应用正确的颜色编码。

然后你可以做这样的事情:

string sql = System.IO.File.ReadAllText("your path to sql file");

它甚至可能更好,因为至少您将保持SQL代码独立。但是,我强烈建议查看实体框架或Linq-to-SQL