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 - в этом представлении отображаются все файлы для всех баз данных.