Zgłoszono to nie mniej niż cztery razy. Ten został zamknięty jako naprawiony:
http://connect.microsoft.com/SQLServer/feedback/details/365876/
Ale to nie była prawda. (Zobacz także sekcję obejść - zaproponowane przeze mnie obejście nie zawsze będzie możliwe do zaakceptowania).
Ten został zamknięty z założenia / nie naprawi się:
http://connect.microsoft.com/SQLServer/feedback/details/581193/
Te dwa są nowsze i wciąż aktywne :
http://connect.microsoft.com/SQLServer/feedback/details/800919/ (teraz zamknięty, ponieważ nie zostanie naprawiony )
http://connect.microsoft.com/SQLServer/feedback/details/804365/ (teraz zamknięty z założenia )
Dopóki Microsoft nie będzie w stanie przekonać się inaczej, będziesz musiał znaleźć obejście - po prostu zainstaluj wszystkie typy przed uruchomieniem testu lub podziel go na wiele testów.
Spróbuję uzyskać potwierdzenie od moich kontaktów na temat tego, co Umachandar rozumiał jako naprawiony w najwcześniejszym punkcie, ponieważ oczywiście jest to sprzeczne z późniejszymi stwierdzeniami.
AKTUALIZACJA # 1 (z, mam nadzieję, dokładnie 2)
Pierwotny błąd (który został zamknięty jako naprawiony) dotyczył typów aliasów, ale nie typu TABLE
. Zgłoszono to w stosunku do SQL Server 2005, który oczywiście nie miał typów tabel i TVP. Wygląda na to, że UC zgłosił, że błąd związany z nie-tabelowymi typami aliasów został naprawiony na podstawie tego, jak obsługują transakcje wewnętrzne, ale nie obejmował podobnego scenariusza wprowadzonego później z typami tabel. Nadal czekam na potwierdzenie, czy ten oryginalny błąd powinien kiedykolwiek zostać zamknięty jako naprawiony; Zasugerowałem, aby wszystkie cztery były zamknięte zgodnie z projektem. Wynika to częściowo z tego, że spodziewałem się, że zadziała, a częściowo z tego, że UC ma wrażenie, że „poprawianie” działania w inny sposób jest niezwykle złożone, może złamać kompatybilność wsteczną i byłoby pomocne w bardzo ograniczona liczba przypadków użycia. Nic przeciwko tobie lub twojemu przypadkowi użycia, ale poza scenariuszami testowymi „
AKTUALIZACJA # 2
Napisałem na blogu o tym problemie:
http://www.sqlperformance.com/2013/11/t-sql-queries/single-tx-deadlock