我有 2 個變量:一個存儲表的內容,一個存儲檢查數據庫中所有鍵的 sql 腳本。$indexes = DB::connection('sqlsrv2')->table('indexes')->get();$dbIndexes = DB::connection('sqlsrv')->select (" select schema_name(t.[schema_id]) + '.' + t.[name] as table_view, substring(column_names, 1, len(column_names)-1) as [columns], case when i.is_primary_key = 1 then 'Primary_key' when i.is_unique = 1 then 'Unique' else 'Not_unique' end as [type], i.[name] as index_name, i.index_id from sys.objects t inner join sys.indexes i on t.[object_id] = i.[object_id] cross apply ( select col.[name] + ', ' from sys.index_columns ic inner join sys.columns col on ic.[object_id] = col.[object_id] and ic.column_id = col.column_id where ic.[object_id] = t.[object_id] and ic.index_id = i.index_id order by col.column_id for xml path ('') ) D (column_names) where t.is_ms_shipped <> 1 and index_id > 0 ");我需要查看表中的內容是否也在 sql 腳本中,如果沒有則刪除該行。我已經嘗試過“diff”和“diffAssoc”方法,但顯示所有記錄都不同。$diff = $indexes->diffAssoc(get_object_vars(collect($dbIndexes)));
檢查兩個集合的差異
幕布斯6054654
2023-05-12 16:02:17