T-Sql

T-SQL 查找數據庫名稱以及是否為特定數據庫啟用了 Filestream

  • May 13, 2020

請在下面的查詢中幫助我。

注意: 請原諒我的程式技巧,程式碼有錯誤。

我希望在一個列中輸出數據庫名稱,在另一列中啟用或禁用 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數據庫名稱相關的所有文件,您可以使用此查詢。

SELECT db.NAME       AS DBName, 
      type_desc     AS FileType, 
      physical_name AS Location 
FROM   sys.master_files mf 
      INNER JOIN sys.databases db 
              ON db.database_id = mf.database_id 
WHERE  type_desc = 'FILESTREAM' 

引用自:https://dba.stackexchange.com/questions/194592