shmuel613, lepiej byłoby zaktualizować swoje oryginalne pytanie niż odpowiadać. Najlepiej, jeśli całe pytanie jest w jednym miejscu, a nie w dyskusji.
Odpowiedź Bena jest rozsądna, z wyjątkiem tego, że wydaje się, że ma „nie”, gdy nie chce. Upuszczanie tabeli tylko wtedy, gdy nie istnieje nie jest całkiem w porządku.
Rzeczywiście będziesz potrzebować wielu oświadczeń. Warunkowo utwórz, a następnie wypełnij:
- UTWÓRZ TYMCZASOWĄ TABELĘ, JEŚLI NIE ISTNIEJE fubar ( id int, name varchar(80) )
- OBCIĄĆ TABELĘ fubar
- WSTAW DO fubar WYBIERZ * Z barfu
lub po prostu upuść i odtwórz
- UPUŚĆ TABELĘ, JEŚLI ISTNIEJE fubar
- UTWÓRZ TABELĘ TYMCZASOWĄ fubar SELECT id, nazwa FROM barfu
Z czystym SQL są to Twoje dwie prawdziwe klasy rozwiązań. Druga podoba mi się bardziej.
(Za pomocą procedury składowanej możesz zredukować to do pojedynczej instrukcji. Coś takiego:TruncateAndPopulate(fubar) Ale zanim napiszesz kod dla TruncateAndPopulate(), spędzisz więcej czasu niż tylko użycie powyższego SQL.)