2014-05-18 30 views
0

如果我创建了一个包含我所有sql对象的.sqlproj文件,为什么需要将我的mdf,ldf文件放入VS Team服务源代码库? .mdf是否包含所有数据?如果这是真的,那么我可能不想将所有数据存储在我的回购中?如果我需要重新创建数据库,我总是可以将数据库发布到localdb?这里有什么最佳实践?我应该将我的.mdf和.ldf文件从我的代码放到Visual Studio Team Services存储库中

回答

0

你不会控制实际的.MDF和.LDF文件;它们包含您的实际数据。

但是,有一些用例需要控制,其中存在磁盘的.MDF和.LDF文件。在这种情况下,在您的.sqlproj文件中包含定义MDF/LDF文件位置的文件组文件可能是合理的。

例如,假设您有一个较大的D:驱动器,您希望存储数据,而一个快速的E:驱动器由您希望存储索引的SSD组成。从您的.sqlproj存放文件夹,您可以:

  • 添加新项>文件组,并创建一个名为数据
  • 文件组
  • 添加新项>文件组,并创建一个名为索引的文件组
  • 添加新项目>文件组文件,并创建一个名为$(数据库名).Data.ldf
  • 添加新项>文件组文件,并创建一个名为$(数据库名).Indexes.ldf

然后,可以修改你的表格以包含ON { FileGroup}子句是这样的:

CREATE TABLE [dbo].[MyTable] (
    MyTableID INT IDENTITY(1,1) NOT NULL, 
    OtherIndexField NVARCHAR(50) NULL, 
    ... 
    CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([MyTableID] ASC) 
) ON [Data]; 

CREATE NONCLUSTERED INDEX [IX_MyTableByOtherIndexField] 
    ON [dbo].[MyTable]([OtherIndexField] ASC) 
    ON [Index]; 
相关问题