shmuel613, би било по-добре да актуализираш първоначалния си въпрос, вместо да отговаряш. Най-добре е да има едно място, съдържащо пълния въпрос, вместо да бъде разпръснат в дискусия.
Отговорът на Бен е разумен, но изглежда, че има „не“ там, където не иска. Пускане на масата само ако не се съществува не е съвсем правилно.
Наистина ще ви трябват множество изявления. Или създайте условно, след което попълнете:
- СЪЗДАВАНЕ НА ВРЕМЕННА ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА fubar ( id int, name varchar(80) )
- TRUNCATE TABLE fubar
- INSERT INTO fubar SELECT * FROM barfu
или просто пуснете и създайте отново
- ПУСКАНЕ НА ТАБЛИЦАТА, АКО СЪЩЕСТВУВА fubar
- CREATE TEMPORARY TABLE fubar SELECT id, name FROM barfu
С чист SQL това са вашите два реални класа решения. Второто ми харесва повече.
(Със съхранена процедура можете да я намалите до един оператор. Нещо като:TruncateAndPopulate(fubar) Но докато напишете кода за TruncateAndPopulate(), ще отделите повече време, отколкото просто да използвате SQL по-горе.)