I’ve finally started using SQL 2008 Reporting Services in earnest to provide access to all that useful data in the FIM Metaverse. Like a good girl I’m replicating the tables to another database, instead of pointing straight at the active FIMSynchronizationService database. Here’s a simple little script that I’ve tacked on to the end of my regular run cycles.
# Copies tables from the FIMSync DB to the FIMReporting DB
$tables = @('mms_metaverse','mms_metaverse_multivalue','mms_mv_link')
if(@(get-pssnapin | where-object {$_.Name -eq “sqlserverprovidersnapin100â€} ).count -eq 0) {add-pssnapin sqlserverprovidersnapin100}
if(@(get-pssnapin | where-object {$_.Name -eq “sqlservercmdletsnapin100â€} ).count -eq 0) {add-pssnapin sqlservercmdletsnapin100}
set-location SQLSERVER:\SQL\<sqlserver>\<instance>\Databases\FIMReporting
foreach ($table in $tables)
{
$SqlQuery = "if exists (select * from sys.tables where name = N'$table') drop table $table"
Invoke-SQLCmd $SqlQuery -SuppressProviderContextWarning
$SqlQuery = "select * into $table FROM FIMSynchronizationService.dbo.$table"
Invoke-SQLCmd $SqlQuery -SuppressProviderContextWarning
}