Ho una procedura memorizzata che:
- controlla se esiste una tabella e, in tal caso, la rilascia.
- crea di nuovo quella tabella
- quindi riempie quella tabella con circa 30 query.
Quando io (DB Owner) eseguo questo proc, tutto funziona come previsto. Quando il mio collega lo fa, che ha i diritti DROP / CREATE su questo database attraverso un ruolo in Active Directory, diverse cose vanno male. Ciò che mi sorprende è questo:
La creazione della tabella non aveva lo dbo
schema esplicitamente specificato prima del nome. Ciò ha comportato la creazione di una tabella denominata domain\cowork_id.table_name_here
tabella. Oltre a quella tabella creata nel suo schema personale, ora ha anche quello schema nel database (non esisteva prima dell'esecuzione del proc).
Quello che è successo? Perché SQL Server crea tabelle nello schema dell'utente anziché in dbo
quando non è specificato?