28

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

:setvar DatabaseName "MySQLCLR"

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

:setvar DatabaseName "MySQLCLR_1"

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

:setvar DatabaseName "MySQLCLR_1_1"

等等……

知道为什么会这样吗?

Windows 2008 R2 上的 VS2012、MSSQL2008 R2

4

4 回答 4

3

转到项目的属性,转到Debug并在Target Connection String部分下,单击Restore Default

也许您需要安装SQL Server Data Tools - 2012 年 12 月更新

于 2013-03-14T10:18:35.073 回答
1

我已经看到 Visual Studio 也导致其他 SQL 项目文件出现此问题。就我而言,这是因为它们是已经在该位置的文件,并且名称与您尝试提供的名称相同。检查该目录并查看文件是否已存在。如果是这样,请删除它们,然后您的脚本应该按预期运行。

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

于 2013-03-08T15:02:07.940 回答
1

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

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

于 2013-03-08T14:02:42.910 回答
0

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

是的,这个设置甚至会影响 RELEASE 版本,即使它位于调试选项卡中。去搞清楚。

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

于 2014-01-29T06:24:30.313 回答