每次我对项目进行更改时,SQLCLR数据库名称都会添加_1

时间:2013-01-31 17:56:55

标签: c# sql visual-studio-2012 sqlclr

这是我看到的一个新现象,我的数据库名称是:MySQLCLR,有一个脚本总是在其中提供此名称:

:setvar DatabaseName "MySQLCLR"

现在突然间,每当我对我的sqlclr项目代码进行任何更改并重新编译时,新的输出脚本都会在其中添加_1,如下所示:

:setvar DatabaseName "MySQLCLR_1"

对代码和后续构建的另一个更改将生成:

:setvar DatabaseName "MySQLCLR_1_1"

等等....

知道为什么会这样吗?

VS2012,Windows 2008 R2上的MSSQL2008 R2

4 个答案:

答案 0 :(得分:3)

转到项目的属性,转到调试,然后在目标连接字符串部分下,单击 恢复默认

也许您需要安装SQL Server Data Tools - December 2012 update

答案 1 :(得分:1)

我认为这是因为它将数据库保存在同一位置而不会覆盖旧数据库,您的数据库是否在Visual Studio中连接?如果是的话,试试这个:

在解决方案资源管理器示例中搜索您的数据库:“database.sdf”。单击数据库并查看属性。应该有一个默认情况下“不复制”或者其他东西的属性,如果更新则更改为复制然后重新编译。问题是否仍然存在?

答案 2 :(得分:1)

我见过visual studio也会导致其他SQL项目文件出现此问题。在我的情况下,这是因为他们的文件已经在你想要给它的名字的位置。检查该目录并查看文件是否已存在。如果他们这样做,删除它们,然后你的脚本应该按预期运行。

当人们进行糟糕的TFS合并并将生成的文件挂在本地计算机上时,我遇到了这个问题。当他们重新生成它们时,生成器以与您描述的方式类似的方式递增所有文件名。

答案 3 :(得分:0)

我也碰到了这个。您必须更改的设置位于左侧的Project Properties / DEBUG选项卡中。 (右键单击数据库项目,选择属性。)在那里,您将看到目标连接字符串。在那里,您将看到数据库名称附加的仇恨_1(或_2)。这是您需要进行编辑的地方,以便在部署步骤中生成的部署脚本(例如mydatabase.sql)具有正确的数据库名称。

是的,即使它在调试选项卡中,此设置也会影响RELEASE版本。去图。

只需选择“恢复默认值”按钮,附加的数字就会消失。点击绿色>按钮或f5(即使在发布模式下),您将获得一个包含正确名称的干净部署脚本。