我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?

Osi*_*nor 2 t-sql sql-server sqlcmd database-project visual-studio

我有很多 SQL 在多个存储过程中是相同的。

例如,大多数过程都声明了相同的变量,并在同一个 try catch 块中处理错误。

我想使用该:r命令,以便我可以在一个文件中编写此代码,然后将其导入每个 sp。我可以在构建前和构建后脚本中使用该命令,但无法在普通的“构建”类型数据库对象中使用它。

例子:

在此处输入图片说明

内的 SQL \Shared\CommonVariables

在此处输入图片说明

[p_An_Example]

在此处输入图片说明

错误只是说“SQL46010:\ 附近的语法不正确。”

——

如果我将路径用引号括起来,则错误将在“开始”上替换为一个:

在此处输入图片说明

“SQL46010:BEGIN 附近的语法不正确。”

——

有什么我可以做的事情吗?目前[p_An_Example]具有BuildBuild Action 属性,并\Shared\CommonVariables设置为None.

(我使用的是 Visual Studio 2017,数据库项目指向 2008 数据库,安装了 SQLCMD 等)

编辑:不是重复,因为我确实打开了 SQLCMD 模式...但事实证明 SQLCMD 命令在存储过程语句中不可用

use*_*983 8

是的,该选项在 SQL -> 执行设置 -> SQLCMD 模式中:

在此处输入图片说明

但是请注意,您不能在 SP 中包含 sqlcmd 代码,因为 DBMS 无法解释该代码,它纯粹是为了在编码环境中使用;例如在 SSMS/VS 中。


Ser*_*gan 8

在 中Visual Studio 2019,您可以通过打开包含SQLCMD语句的文件来执行相同操作,然后单击新视图中的最后一个图标以使错误消失:

在此处输入图片说明