Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Visual Studio 2013数据库项目-部署/发布-文件组主_Sql Server_Visual Studio 2013_Deployment_Publish_Database Project - Fatal编程技术网

Sql server Visual Studio 2013数据库项目-部署/发布-文件组主

Sql server Visual Studio 2013数据库项目-部署/发布-文件组主,sql-server,visual-studio-2013,deployment,publish,database-project,Sql Server,Visual Studio 2013,Deployment,Publish,Database Project,传统上,我使用SQLServerManagementStudio创建简单的数据库,然后进行备份并在线恢复到空数据库。这是我托管服务器的首选方式 我最近开始使用Visual Studio 2013数据库项目选项,因为我更喜欢那种环境。我以此为向导 两者之间存在差异-我没有部署后脚本选项,因此我使用发布创建了数据库,这似乎很好。在我看过的所有例子中,有一个怪癖是不同的。当我发布时,它使用我选择的名称创建数据库并附加\u PRIMARY。在数据库属性中,它显示了数据库名称,但在上面它显示了FileGr

传统上,我使用SQLServerManagementStudio创建简单的数据库,然后进行备份并在线恢复到空数据库。这是我托管服务器的首选方式

我最近开始使用Visual Studio 2013数据库项目选项,因为我更喜欢那种环境。我以此为向导

两者之间存在差异-我没有部署后脚本选项,因此我使用发布创建了数据库,这似乎很好。在我看过的所有例子中,有一个怪癖是不同的。当我发布时,它使用我选择的名称创建数据库并附加
\u PRIMARY
。在数据库属性中,它显示了数据库名称,但在上面它显示了
FileGroup=Primary
,所以我假设这就是为什么?当我通过VS2013或SQL Server Management Studio查看数据库时,它只显示数据库名称,但如果我想将数据库附加到项目,我必须附加
\u PRIMARY.mdf
文件


在我的无知中,我假设
\u PRIMARY
是数据库的包装器?我想知道为什么VS2013会这样做,如果像上面解释的那样部署,这会导致问题吗?或者我只是做错了一切。

数据库项目会自动为数据库创建一个名为PRIMARY的文件组。除非您对其进行更改(请参见“项目属性”>“项目设置”>“数据库设置”>“操作”选项卡),否则它将成为默认文件组,但通常不需要更改


数据库项目会自动在主数据文件的名称中使用文件组名称,例如
MyDatabase\u primary.mdf
。如果需要多个数据文件(例如:
MyDatabase\u SECONDARY.ndf
MyDatabase\u FILEDATA.ndf
,等等),这是一个很好的约定

VS正在做的是非常好的。数据文件名是任意的。如果您确实需要对数据文件的命名方式进行更多控制,请读取


我还建议阅读中有关文件和文件组的更多信息。

我回答了您的问题,但我不清楚您的陈述
当我通过VS2013或SQL Server Management Studio查看数据库时,它只显示数据库名称,但如果我要将数据库附加到项目,我必须附加_PRIMARY.mdf文件。
如果这是一个问题,你能提供更多的细节,甚至是截图吗?嗨,Keith-很抱歉延迟回答你-我以为我会在回复发布时收到通知:(…再次抱歉。当我使用SSMS查看数据库时,数据库名称显示为没有主附件。我感谢您的回答,它提供了一些很好的链接。我所做的是使用项目中的模式创建一个新的数据库-我以前没有这样做过,特别喜欢该功能,因为它保留了“c”在tact中孤立db的数据-所以现在我不关心原始db中附加了什么。