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

时间:2018-08-14 11:04:35

标签: sql-server visual-studio tsql sqlcmd database-project

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

例如,大多数过程具有声明的相同变量,并且位于同一try catch块中以处理错误。

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

示例:

enter image description here

\Shared\CommonVariables中的SQL:

enter image description here

[p_An_Example]内:

enter image description here

错误仅显示“ SQL46010:\附近的语法不正确。”

-

如果将路径用引号引起来,则错误将由'BEGIN'上的错误代替:

enter image description here

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

-

有什么我可以做的工作吗?目前,[p_An_Example]具有Build Build Action属性,并且\Shared\CommonVariables设置为None

(我正在使用Visual Studio 2017,数据库项目指向2008数据库,已安装SQLCMD等)

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

2 个答案:

答案 0 :(得分:2)

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

enter image description here

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

答案 1 :(得分:1)

Visual Studio 2019中,您可以执行以下操作:使用SQLCMD语句打开文件,然后在新视图中单击最后一个图标以使错误消失:

enter image description here