Se dovete prendere un backup di un DB Sql server fatto da un hosting provider (per esempio usando “mylittlebackup” di Aruba) ed importarlo in un Db locale, troverete un problema: tutti gli oggetti avranno come schema l’utente del database invece che il più standard “dbo”.
Per risolvere, dopo aver importato il DB è necessario eseguire per tutti gli oggetti coinvolti uno script del genere
ALTER SCHEMA dbo TRANSFER Mssql12345.tablename
(dove ‘Mssql12345’ è il nome dell’utente del DB e ‘tablename’ il nome della tabella)
questo risulta noioso se gli oggetti sono tanti, la soluzione più semplice (che non coinvolga cursori e query complesse) è quella di eseguire una query del tipo
SELECT 'ALTER SCHEMA dbo TRANSFER Mssql12345.' + name FROM sys.objects WHERE type='U'
e di usare il risultato per eseguire la query di aggiornamento dello schema…