我应该将我的代码中的.mdf和.ldf文件放入Visual Studio Team Services存储库

时间:2014-05-18 22:03:25

标签: mdf azure-devops ldf

如果我创建一个包含所有sql对象的.sqlproj文件,为什么我需要将我的mdf,ldf文件放入VS Team Services源代码库?不.mdf包含所有数据吗?如果这是真的那么我可能不想将所有数据存储在我的仓库中?如果我需要重新创建数据库,我总是可以将数据库发布到localdb吗?这里的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

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

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

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

  • 添加新项> FileGroup,并创建一个名为Data
  • 的文件组
  • 添加新项> FileGroup,并创建一个名为Index
  • 的文件组
  • 添加新项> FileGroup File,并创建一个名为$(DatabaseName).Data.ldf
  • 的文件
  • 添加新项> FileGroup File,并创建一个名为$(DatabaseName).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];