确实,以下查询最初不是我的,但我在工作中面临着确切的问题。从而照原样复制问题陈述。我找不到任何解决方案。我非常感谢以下问题集的任何建议或亮点:
我在 Schema Objects\Database Level Objects\Storage\Files 中没有任何硬编码 - 在数据库和日志文件中都是如此。
当我从 db 项目中单击“部署”时生成的部署脚本在 :SETVAR 中有硬编码,其中数据库和日志文件路径分配给 $(DefaultDataPath) 和 $(DefaultLogPath) - 见下文: :setvar DefaultDataPath "C:\DB\ Microsoft SQL Server\MSSQL10_50.MITCHELL\MSSQL\DATA\" :setvar DefaultLogPath "C:\DB\Microsoft SQL Server\MSSQL10_50.MITCHELL\MSSQL\DATA\"。
我希望部署脚本接受数据和日志路径的输入。但是根据当前正在生成的脚本,我必须手动注释以上 2 行并修改 CREATE DATABASE 语句,如下所示,以用“InputDefaultDataPath”替换对“DefaultDataPath”和“DefaultLogPath”的任何引用和"InputDefaultLogPath" 在 PRIMARY 上创建数据库 [$(DatabaseName)] (NAME = [TEST_DB], FILENAME = '$(InputDefaultDataPath)$(DatabaseName).mdf', >SIZE = 3072 KB, FILEGROWTH = 1024 KB) 登录 (NAME = [TEST_DB_log],FILENAME = >'$(InputDefaultLogPath)$(DatabaseName)_log.ldf',SIZE = 1024 KB,MAXSIZE = 2097152 MB,FILEGROWTH = 10 %) 整理 SQL_Latin1_General_CP1_CI_AS
Question 1: How do I prevent db project from scripting the below two lines and also
防止它在 CREATE DATABASE 语句中替换这些变量?:setvar DefaultDataPath "C:\DB\Microsoft SQL Server\MSSQL10_50.MITCHELL\MSSQL\DATA\" :setvar DefaultLogPath "C:\DB\Microsoft SQL Server\MSSQL10_50.MITCHELL\MSSQL\DATA\"。
问题 2:如何使 db 项目自动编写部署脚本,使其接受 DefaultDataPath 和 DefaultLogPath 的用户输入,而无需我手动将其更改为包含 $(InputDefaultDataPath) 和 $(InputDefaultLogPath) 变量?