Napotkałem ten problem podczas próby zaimportowania wyników Stored Proc do tabeli tymczasowej, a ten Stored Proc został wstawiony do tabeli tymczasowej jako część własnej operacji. Problem polega na tym, że SQL Server nie pozwala temu samemu procesowi na zapis do dwóch różnych tabel tymczasowych w tym samym czasie.
Zaakceptowana odpowiedź OPENROWSET działa dobrze, ale musiałem uniknąć używania w moim procesie dowolnego Dynamic SQL lub zewnętrznego dostawcy OLE, więc poszedłem inną drogą.
Jednym z łatwych obejść, które znalazłem, była zmiana tabeli tymczasowej w mojej procedurze składowanej na zmienną tabeli. Działa dokładnie tak samo, jak w przypadku tabeli tymczasowej, ale nie powoduje już konfliktu z inną wstawką do tabeli tymczasowej.
Żeby zapomnieć o komentarzu, wiem, że kilku z was ma zamiar napisać, ostrzegając mnie przed zmiennymi tabeli jako zabójcami wydajności ... Mogę wam tylko powiedzieć, że w 2020 roku opłaca się nie bać się zmiennych tabeli. Gdyby to był rok 2008, a moja baza danych była hostowana na serwerze z 16 GB pamięci RAM i dyskami twardymi 5400 obr./min, mógłbym się z tobą zgodzić. Ale jest rok 2020 i mam macierz SSD jako moją podstawową pamięć masową i setki gigabajtów pamięci RAM. Mógłbym załadować całą bazę danych mojej firmy do zmiennej tabeli i nadal mieć dużo wolnego miejsca w pamięci RAM.
Zmienne tabeli wróciły do menu!