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

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

Благодарю.

2 ответа

Решение
IF NOT EXISTS (select 1 from sys.database_files where name = 'LogicalFileName')
     ALTER DATABASE...

Редактировать: Исправлено имя просмотра, чтобы соответствовать предложению Ника Кавадиаса.

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

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