我们使用Visual Studio数据库项目来控制数据库的模式.我们还想从数据库中编写某些数据(配置值等),因此我们使用自定义命令行实用程序将数据转储到插入脚本中.一个文件表示一个表的脚本数据.
有一个称为部署后脚本的SQL脚本,它在项目的Deploy命令之后自动执行.建议在这里链接其他脚本文件,我们想要链接我们的数据插入脚本.
说明说使用此命令从任意文件解析
SQLCMD :r
问题是,我没有看到我的同事在从源代码控制下载它时如何使用它,因为:r命令的启动目录是devenv.exe(VS dev.env.)所在的位置.
我们是否正确处理使用正确工具从正确角度编写数据脚本的问题?如果是这样,那么我如何才能获得正在执行的部署后脚本文件的路径,或者如何在不将其路径硬编码到部署后脚本的情况下解析插入脚本?
嗯,事实证明,只需指定脚本文件的相对路径就足够了.我被Visual Studio的Validate SQL Syntax功能误导了,该功能通过使用devenv.exe的位置作为起始目录来评估r之后的路径.
但是,在项目上执行Deploy时,:r命令使用脚本的目录作为起始目录,因此可以使用相对路径轻松地给出文件的位置.