如果我创建一个包含所有 sql 对象的 .sqlproj 文件,为什么需要将我的 mdf、ldf 文件放入 VS Team Services 源存储库?.mdf 不包含所有数据吗?如果这是真的,那么我可能不想将所有数据存储在我的仓库中?如果我需要重新创建数据库,我总是可以将数据库发布到 localdb 吗?这里有哪些最佳实践?
问问题
368 次
1 回答
0
您不会对实际的 .MDF 和 .LDF 文件进行源代码控制;它们包含您的实际数据。
但是,有些用例需要控制.MDF 和 .LDF 文件在磁盘上的位置。在这种情况下,在 .sqlproj 文件中包含定义 MDF/LDF 文件位置的文件组文件可能是有意义的。
例如,假设您有一个大的 D: 驱动器希望存储数据,以及一个由 SSD 组成的高速 E: 驱动器希望存储索引。从您的 .sqlproj 存储文件夹中,您可以:
- 添加 New Item > FileGroup,并创建一个名为 Data 的文件组
- 添加 New Item > FileGroup,并创建一个名为 Index 的文件组
- 添加新项目 > 文件组文件,并创建一个名为 $(DatabaseName).Data.ldf 的文件
- 添加新项目 > 文件组文件,并创建一个名为 $(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];
于 2014-07-27T14:36:11.930 回答