Zaimportowałem kilka tabel z SQL Server 2000 do mojej bazy danych 2008. Wszystkie importowane tabele są poprzedzone moją nazwą użytkownika, np erpadmin.tablename
. : .
We właściwościach tabeli znajduje się „erpadmin” jako schemat db. Kiedy piszę zapytanie, muszę teraz wpisać „erpadmin”. przed wszystkimi nazwami tabel, co jest mylące.
Aktualny wynik:
select *
from erpadmin.tablename
Pożądany rezultat:
select *
from tablename
źródło
select ... from table5 ;
) i uzyskuje różne wyniki. Jest to złe dla buforowania planu, a także dla rozwiązywania problemów (osoba obsługująca cue, „to zapytanie działa tutaj”). Również tworzenie schematów, które jest wymagane do indeksowania funkcji i widoków, wymaga dwóch nazw części. TLDR: przestań być leniwy - użyj dwóch nazw części.Jako dodatek do odpowiedzi @AdamWenger. Aby utworzyć skrypty do przeniesienia do innego schematu, możesz użyć następującego skryptu
źródło
Twój problem jest prawdopodobnie spowodowany sposobem migracji. Rzeczy nie powinny być dołączane do twojego użytkownika, chyba że jesteś uważany za właściciela.
Istnieją schematy, które pomogą ci rozdzielić tabele według jakiegokolwiek sensu. Załóżmy, że masz jedną tabelę zasobów dla działu HR i potrzebujesz osobnej tabeli dla działu produkcji, zachowując obie w tej samej bazie danych. W takim przypadku możesz mieć dwie tabele o nazwie zasoby, jedną w schemacie produkcyjnym i drugą w schemacie HR. Dlatego należy określić shcemas, chyba że wprowadzisz elementy do domyślnego schematu.
Jeśli nie powtarzasz migracji z innego powodu, transfer Adama Wengera powinien być rozsądną opcją.
źródło
Uruchom polecenie za pomocą
USE [tablename]
zapytania Nie ma powiązanej bazy danych, do której można się odwoływać, a baza danych, którą przeglądasz, nie jest domyślna dla zalogowanego użytkownika W górnej części okna zapytania prawdopodobnie znajduje się „master”źródło
[database_name]
, prawda?