这是我看到的一个新现象,我的数据库名称是:MySQLCLR,有一个脚本总是在其中提供此名称:
:setvar DatabaseName "MySQLCLR"
现在突然间,每当我对我的sqlclr项目代码进行任何更改并重新编译时,新的输出脚本都会在其中添加_1,如下所示:
:setvar DatabaseName "MySQLCLR_1"
对代码和后续构建的另一个更改将生成:
:setvar DatabaseName "MySQLCLR_1_1"
等等....
知道为什么会这样吗?
VS2012,Windows 2008 R2上的MSSQL2008 R2
答案 0 :(得分:3)
转到项目的属性,转到调试,然后在目标连接字符串部分下,单击 恢复默认 强>
答案 1 :(得分:1)
我认为这是因为它将数据库保存在同一位置而不会覆盖旧数据库,您的数据库是否在Visual Studio中连接?如果是的话,试试这个:
在解决方案资源管理器示例中搜索您的数据库:“database.sdf”。单击数据库并查看属性。应该有一个默认情况下“不复制”或者其他东西的属性,如果更新则更改为复制然后重新编译。问题是否仍然存在?
答案 2 :(得分:1)
我见过visual studio也会导致其他SQL项目文件出现此问题。在我的情况下,这是因为他们的文件已经在你想要给它的名字的位置。检查该目录并查看文件是否已存在。如果他们这样做,删除它们,然后你的脚本应该按预期运行。
当人们进行糟糕的TFS合并并将生成的文件挂在本地计算机上时,我遇到了这个问题。当他们重新生成它们时,生成器以与您描述的方式类似的方式递增所有文件名。
答案 3 :(得分:0)
我也碰到了这个。您必须更改的设置位于左侧的Project Properties / DEBUG选项卡中。 (右键单击数据库项目,选择属性。)在那里,您将看到目标连接字符串。在那里,您将看到数据库名称附加的仇恨_1(或_2)。这是您需要进行编辑的地方,以便在部署步骤中生成的部署脚本(例如mydatabase.sql)具有正确的数据库名称。
是的,即使它在调试选项卡中,此设置也会影响RELEASE版本。去图。
只需选择“恢复默认值”按钮,附加的数字就会消失。点击绿色>按钮或f5(即使在发布模式下),您将获得一个包含正确名称的干净部署脚本。