请在下面的查询中帮助我。
注意: 请原谅我的编程技巧,代码有错误。
我希望在一个列中输出数据库名称,在另一列中启用或禁用 FileStream。我正在尝试的只有 2 列。谢谢
查找数据库名称以及是否为数据库启用了 FileStream。
declare @cmd varchar(500)
set @cmd='USE ?
if exists(
select name, Filestream from sys.database_files where type_desc='FILESTREAM')
CASE type_desc WHEN 'FILESTREAM' THEN 'Filestream Configured For Datbase' ELSE 'Filestream NOT Configured For Datbase'
PRINT 'Filestream Configured For Datbase'
else
print 'Filestream Not configured for database'
inner join sys.databases where name not in (''master'', ''tempdb'', ''model'', ''msdb'')')
exec sp_MSforeachdb @cmd
参考:
我会改写您的问题以查找正在使用的数据库
FILESTREAM
。因为您只能FILESTREAM
在实例级别启用才能在任何用户数据库中使用它。要查找与
FILESTREAM
数据库名称相关的所有文件,您可以使用此查询。由于
sp_MSforeachdb
存在已知问题,我选择了 Aaron Bertrand 的sp_foreachdb存储过程来查询每个数据库。我修改了我的一个本地Test
数据库FILESTREAM
(