Назад | Перейти на главную страницу

sql 2008 filestream, как проверить, существует ли

Мы собираемся начать использовать файловый поток sql 2008 и пройти через инструкции по его настройке. Один из элементов, которые мы делаем, - это все в одном sql-скрипте, который можно запускать несколько раз без повреждения данных или выполнения ненужных шагов.

До сих пор мы создали группу файлового потока и теперь хотите определить контейнер данных файлового потока с помощью следующего оператора

ALTER DATABASE Production ADD FILE (
       NAME = FSGroup1File,
       FILENAME = 'F:\Production\FSDATA')
TO FILEGROUP FileStreamGroup1;
GO

Есть ли способ проверить, было ли это уже сделано? т.е.

if (select COUNT(*) from sys.????? where name = '?????')=0
ALTER DATABASE Production ADD FILE (
       NAME = FSGroup1File,
       FILENAME = 'F:\Production\FSDATA')
TO FILEGROUP FileStreamGroup1;
GO

Извините, если это базовый вопрос, но я немного новичок, когда дело касается БД.

Спасибо.

IF NOT EXISTS (select 1 from sys.database_files where name = 'LogicalFileName')
     ALTER DATABASE...

Изменить: исправленное имя представления в соответствии с предложением Ника Кавадиаса.

Вы можете использовать sys.sysfiles, как предлагает NYSystemsAnalyst. хотя это представление совместимости для SQL Server 2000. Предпочтительные системные представления для использования:

  • sys.database_files - В этом представлении отображаются только файлы в текущем контексте базы данных.
  • sys.master_files - В этом представлении отображаются все файлы для всех баз данных.