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

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

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

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

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

示例:

enter image description here

\Shared\CommonVariables 中的 SQL:

enter image description here

[p_An_Example]内:

enter image description here

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

-

如果我将路径用引号引起来,则“BEGIN”上的错误将被替换为 1:

enter image description here

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

-

我能做些什么来让它正常工作吗?目前,[p_An_Example] 具有 Build Build Action 属性,并且 \Shared\CommonVariables 设置为 None .

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

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

最佳答案

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

enter image description here

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

关于sql-server - 我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51839951/

相关文章:

sql-server - "NOT"什么时候不是否定?

visual-studio - TypeScript/Visual Studio 2012/编译参数

c# - 将文本框值插入数据库

tsql - 为什么在 EXEC 的参数中连接字符串有时会导致 T-SQL 中的语法错误?

sql - 如何将表列转换为Sql server 表中的垂直数据?

sql-server - "Round half up"浮点值

C# - 如何显示有关从另一个表检索的 SQL 表的元数据?

.net - VS2010项目中资源文件的路径

visual-studio - Visual Studio 从某处检索到项目的不正确路径

sql - 从 SQL Server 中的两个不同服务器选择数据