Mam procedurę składowaną, która:
- sprawdza, czy tabela istnieje, a jeśli tak, upuszcza ją.
- ponownie tworzy ten stół
- następnie wypełnia tabelę około 30 zapytaniami.
Kiedy ja (właściciel DB) uruchamiam ten proc, wszystko działa zgodnie z przeznaczeniem. Kiedy robi to mój współpracownik, który ma uprawnienia DROP / CREATE do tej bazy danych dzięki roli w Active Directory, kilka rzeczy idzie nie tak. To, co mnie denerwuje, to:
Podczas tworzenia tabeli nie dbo
zdefiniowano wyraźnie schematu przed nazwą. W rezultacie powstała tabela zwana domain\cowork_id.table_name_here
tabelą. Oprócz tej tabeli, która jest tworzona w jego osobistym schemacie, ma on także ten schemat w bazie danych (nie istniał przed uruchomieniem proc).
Co się stało? Dlaczego SQL Server tworzy tabele w schemacie użytkownika zamiast w, dbo
gdy nie jest to określone?