我有很多在多个存储过程中相同的 SQL。
例如,大多数过程都声明了相同的变量,并且位于同一个 try catch block 中来处理错误。
我想使用 :r
命令,以便我可以将此代码写入一个文件中,然后将其导入到每个 sp 中。我可以在构建前和构建后脚本中使用该命令,但无法让它在正常的“构建”类型数据库对象中工作。
示例:
\Shared\CommonVariables
中的 SQL:
在[p_An_Example]
内:
错误只是说“SQL46010:\附近的语法不正确。”
-
如果我将路径用引号引起来,则“BEGIN”上的错误将被替换为 1:
“SQL46010:BEGIN 附近的语法不正确。”
-
我能做些什么来让它正常工作吗?目前,[p_An_Example]
具有 Build
Build Action 属性,并且 \Shared\CommonVariables
设置为 None
.
(我使用的是 Visual Studio 2017,数据库项目指向 2008 数据库,安装了 SQLCMD 等)
编辑:不是重复,因为我确实打开了 SQLCMD 模式...但事实证明 SQLCMD 命令在存储过程语句中不可用
最佳答案
是的,该选项位于 SQL -> 执行设置 -> SQLCMD 模式:
但是请注意,您不能在 SP 中包含 sqlcmd 代码,因为 DBMS 无法解释该代码,它纯粹用于在编码环境中使用;例如在 SSMS/VS 内。
关于sql-server - 我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51839951/