Answers:
假设该错误在构建过程中发生,并且您没有任何实际的语法错误,并且这很简单
:r path\to\file.sql
那么当导入的文件不存在时,也会发生该错误。请检查文件的位置。如果您没有提供绝对路径,则该路径将相对于解决方案文件夹(至少对我而言是这样)。
如果在开发过程中要查看生成过程报告的错误,请确保在Visual Studio的T-SQL编辑器中启用“ SQLCMD模式”。按钮栏中最右边有一个带有“!”的按钮。在它应该启用这一点。或者你可以去SQL菜单,选择“ Transact-SQL编辑器”->,选择“ 执行设置”->,然后最终选择“ SQLCMD模式”。现在,当您执行脚本时,它会正确解释:r
,就像构建/发布过程一样。
另外,您的部署后脚本(PDS)需要将其构建操作设置为PostDeploy。如果将其设置为None,则SSDT构建过程将完全跳过它。
有效错误
这是因为:r somescript.sql
无效的sql。您会看到语法错误,这正是错误消息指出的内容。
SQL80001:“:”附近的语法不正确。
SQLCMD模式
部署后脚本在SQLCMD模式下执行。
使用sqlcmd实用程序,您可以在命令提示符下,以SQLCMD模式在查询编辑器中,在Windows脚本文件中或在SQL Server的操作系统(Cmd.exe)作业步骤中输入Transact-SQL语句,系统过程和脚本文件。代理工作。该实用程序使用ODBC执行Transact-SQL批处理。
解析度
请记住,您能够连接到数据库并从Visual Studio中执行sql。如果在SSMS中打开相同的脚本,则会看到相同的语法错误。但是,在SSMS和Visual Studio中,都可以“启用” SQLCMD模式。
VS 2017
SSMS 17,SSMS 18
也可以看看