Comment joindre un file mdf en contournant les informations de stream de files?

J'ai un mdf et des files ldf d'une database qui ont en principe des données de stream de files aussi.

Puisque j'ai besoin de déboguer un problème lié uniquement aux tables relationnelles et que le dossier filestream est trop gros, je me request s'il y a un moyen d'attacher un db seulement à partir de mdf et de ldf et de sauter d'une façon ou d'une autre

Ceci est une requête attach typique prise à partir de cette question :

USE [master] GO CREATE DATABASE [AdventureWorks2008] ON ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLTRAININGKIT\MSSQL\DATA\AdventureWorks2008_Data.mdf' ), ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLTRAININGKIT\MSSQL\DATA\AdventureWorks2008_Log.ldf' ), FILEGROUP [PRIMARY] CONTAINS FILESTREAM DEFAULT ( NAME = N'Documents', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLTRAININGKIT\MSSQL\DATA\Documents' ) FOR ATTACH GO 

Puisque je n'ai pas datatables de filestream comment puis-je faire?

Autant que je sache, il n'y a aucun moyen de faire cela avec attachement (puisque attach nécessite que tous les files soient présents). Regardez aussi cette réponse .

Il y a une alternative cependant. Si votre database est en mode de récupération complète, vous pouvez effectuer une sauvegarde partielle sans groupe filestream. Vous pouvez ensuite restaurer à partir de cette sauvegarde et tout groupe de files manquant sera en mode hors connection et inaccessible. Toute requête qui essayera d'utiliser des objects du groupe de files manquant échouera.

Exemples de commands:

 BACKUP DATABASE [Demo] FILEGROUP = N'PRIMARY' TO DISK = N'.\MSSQL\Backup\Demo.bak' WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N'Demo-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO RESTORE DATABASE [OtherDatabase] FILE = N'Demo' FROM DISK = N'.\MSSQL\Backup\Demo.bak' WITH FILE = 1, MOVE N'Demo' TO N'.\MSSQL\DATA\OtherDatabase.mdf', MOVE N'Demo_log' TO N'.\MSSQL\DATA\OtherDatabase_Log.ldf', MOVE N'FStream' TO N'.\MSSQL\DATA\OtherDatabase_Documents', NOUNLOAD, STATS = 10 GO 

MODIFIER:

Quelques liens utiles supplémentaires concernant la sauvegarde et la restauration des files / groupes de files:

EDIT 2:

Si votre database est en mode de récupération simple et que vous souhaitez sauvegarder uniquement des groupes de files spécifiques, vous devez rendre tous les autres groupes de files en lecture seule. Vous pouvez ensuite utiliser READ_WRITE_FILEGROUPS pour sauvegarder uniquement les groupes de files R / W.

Exemples de commands:

 USE [master] GO ALTER DATABASE [Demo] MODIFY FILEGROUP [FilestreamGroup] READONLY GO BACKUP DATABASE [Demo] READ_WRITE_FILEGROUPS TO DISK = N'.\MSSQL\Backup\EFCoreDemo.bak' WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N'Demo-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO ALTER DATABASE [Demo] MODIFY FILEGROUP [FilestreamGroup] READ_WRITE GO RESTORE DATABASE [OtherDatabase] FILE = N'Demo' FROM DISK = N'.\MSSQL\Backup\EFCoreDemo.bak' WITH FILE = 1, MOVE N'Demo' TO N'.\MSSQL\DATA\OtherDatabase.mdf', MOVE N'Demo_log' TO N'.\MSSQL\DATA\OtherDatabase_Log.ldf', MOVE N'FStream' TO N'.\MSSQL\DATA\OtherDatabase_Documents', NOUNLOAD, STATS = 10 GO