Azure-Sql-Database
我們在 sys.databases 中的數據庫的 Database_Id 與 DB_ID ( ‘<our database’ ) 的不匹配
我們數據庫的 sysdatabases 和 sys.databases 中的數據庫 ID 是 4。
函式 DB_ID (’<our database>’) 為我們的數據庫返回 5。此外,表 sys.dm_db_missing_index_details 中我們數據庫的任何缺失索引數據也分配給 database_id 5。
在我看來,sys.databases 的 ID 應該是 5 而不是4。這讓我發瘋了,所以 sp_BlitzIndex 不起作用。
有誰知道為什麼我的數據庫 ID 在 SQL Azure 上的 sys.databases、sys.dm_db_missing_index_details 和 DB_ID() 之間不匹配?它實際上是搞砸了還是這在 SQL Azure 中的工作方式有所不同?
Azure SQL DB 不同!
database_id
來自sys.databases
(不要使用<– 它已棄用)的列sysdatabases
對於數據庫將保持不變。這
DB_ID()
是一個函式,如果 Azure DB 發生故障轉移,該值將發生變化。最好是使用
name
<– 數據庫名稱列。不應依賴 azure 中內置的數據庫 id / db_id,因為每當數據庫移動到不同的 sql 實例時(由於數據庫故障轉移),它都會發生變化。使用名稱而不是 id。另請注意,db_id 可能與 sys.databases 中的不同