我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?
Can I use SQLCMD Commands in Visual Studio Database Project Stored Procedure?
我有很多 SQL 在多个存储过程中是相同的。
例如,大多数过程都声明了相同的变量,并且在同一个 try catch 块中处理错误。
我想使用 :r
命令,这样我就可以将这段代码写在一个文件中,然后将其导入到每个 sp 中。我可以在预构建脚本和 post 构建脚本中使用该命令,但我无法在普通 'Build' 类型的数据库对象中使用它。
示例:
SQL \Shared\CommonVariables
:
在[p_An_Example]
内:
错误只是说 "SQL46010: Incorrect Syntax near \."
-
如果我将路径用引号引起来,错误将被替换为 'BEGIN':
"SQL46010: Incorrect Syntax near BEGIN."
-
我能做些什么来让它工作吗?目前 [p_An_Example]
具有 Build
生成操作 属性,并且 \Shared\CommonVariables
设置为 None
。
(我正在使用 Visual Studio 2017,数据库项目指向 2008 数据库,已安装 SQLCMD 等)
编辑:不是重复,因为我确实开启了 SQLCMD 模式...但结果是 SQLCMD 命令在存储过程语句中不可用
是的,选项在SQL -> 执行设置 -> SQLCMD 模式:
但是请注意,您不能在 SP 中包含 sqlcmd 代码,因为 DBMS 无法解释代码,它纯粹用于编码环境;例如 SSMS/VS.
在 Visual Studio 2019
中,您可以通过使用 SQLCMD
语句打开文件来执行相同的操作,然后单击新视图中的最后一个图标以使错误消失:
我有很多 SQL 在多个存储过程中是相同的。
例如,大多数过程都声明了相同的变量,并且在同一个 try catch 块中处理错误。
我想使用 :r
命令,这样我就可以将这段代码写在一个文件中,然后将其导入到每个 sp 中。我可以在预构建脚本和 post 构建脚本中使用该命令,但我无法在普通 'Build' 类型的数据库对象中使用它。
示例:
SQL \Shared\CommonVariables
:
在[p_An_Example]
内:
错误只是说 "SQL46010: Incorrect Syntax near \."
-
如果我将路径用引号引起来,错误将被替换为 'BEGIN':
"SQL46010: Incorrect Syntax near BEGIN."
-
我能做些什么来让它工作吗?目前 [p_An_Example]
具有 Build
生成操作 属性,并且 \Shared\CommonVariables
设置为 None
。
(我正在使用 Visual Studio 2017,数据库项目指向 2008 数据库,已安装 SQLCMD 等)
编辑:不是重复,因为我确实开启了 SQLCMD 模式...但结果是 SQLCMD 命令在存储过程语句中不可用
是的,选项在SQL -> 执行设置 -> SQLCMD 模式:
但是请注意,您不能在 SP 中包含 sqlcmd 代码,因为 DBMS 无法解释代码,它纯粹用于编码环境;例如 SSMS/VS.
在 Visual Studio 2019
中,您可以通过使用 SQLCMD
语句打开文件来执行相同的操作,然后单击新视图中的最后一个图标以使错误消失: