salve,
Sh@wn ha scritto:
Ciao,
premetto che sono inesperto in materia..
Ho un sito dotnetnuke e, dopo il trasferimendo ad un'altro provider si è presentato il problema che il proprietario non è più mssqlxxxxx ma dbo.
questo non puo' assolutamente essere vero, a meno che l'istanza di SQL Server da te utilizzata non abbia una login che si chiami "dbo" e la cosa mi parrebbe alquanto strana..
"dbo" e' al limite un "utente" di database, che puo', in SQL Server 2000, essere proprietario di oggetti all'interno di un database ovvero, in SQL Server 2005, essere "proprietario" di uno schema all'interno del quale siano "raggruppati" degli oggetti...
e' quindi probabile che, sulla nuova istanza, non esista una login mappata all'utente di database "mssqlxxxx" e quindi tu sia "costretto" a modificare la proprieta', sia del database che degli oggetti, impostandoli, rispettivamente, aud una login valida e ad un utente di database esistente..
la prima operazione, se eseguita tramite Enterprise Manager, avviene "automagicamente", visto che il dialogo di attach prevede l'indicazione di una login valida..
la seconda, purtroppo no..
Questo ha comportato la necessità di effettuare della modifiche che non ho mai fatto.
esempio: devo modificare mssqlxxxxx.GetPortalAliasByPortalID in dbo.GetPortalAliasByPortalID così come tutti gli altri file.
Come devo fare?
in SQL Server 2000 devi utilizzare, oggetto per oggetto, la procedura di sistema sp_changeobjectowner, quindi, eseguire n comandi simili a
EXEC sp_changeobjectowner 'mssqlxxx.tabella_x', 'dbo';
EXEC sp_changeobjectowner 'mssqlxxx.procedura_x', 'dbo';
se utilizzi SQL Server 2005, ti basta migrare, oggetto per oggetto, l'appartenenza di schema, dallo schema 'mssqlxxx' allo schema 'dbo', eseguendo, per ogni oggetto, il comando ALTER SCHEMA, similarmente a
ALTER SCHEMA dbo TRANSFER mssqlxxxx.tabella_x;
ALTER SCHEMA dbo TRANSFER mssqlxxxx.procedura_x;
Ho installato microsoft sql server management studio express ed ho effettualto la connessione al database. Sono andato nella directory stored procedure e quì vedo tutti i miei file mssqlxxxxx.
NON sono files... la rappresentazione gerarchica all'interno di Enterprise Manager o SQL Server Management Studio nulla ha a che fare con eventuali file fisici presenti a livello NTFS.. quello che vedi e' una rappresentazione gerachica organizzata per tipo di oggetto degli oggetti (tabelle, procedure e quant'altro) registrati nel database..
Clicco con il pulsante destro su uno di questi e viene fuori il seguente menu:
Nuova stored procedure..
Modifica..
Esegui stored procedure..
Crea script per stored procedure (create, alter, drop, execute)
etc.
Qualcuno mi può dire se la direzione è quella giusta? devo eseguire uno script per ogni modifica oppure no? dove devo eseguirlo?.
si, come sopra indicato
Inoltre c'è un'altra cosa che non mi torna: eseguendo il collegamento con il database dal mio browser posso notare che le modifiche (da owner mssqlxxxxx a dbo) che sono state fatte dall'help desk del mio provider si possono notare, mentre quando mi connetto con sql server il proprietario rimane mssqlxxxxx (o quantomeno è quello che mi sembra di vedere!)
capito niente

..
cosa vuol dire "..mentre quando mi connetto con sql server il proprietario... "
tu non ti connetti "con", ma ti connetti "a", oppure, ripeto, non ho capito cosa intendi (cosa molto probabile)

saluti