2013-08-16 19 views
5

O ile mogę stwierdzić, zgodnie z this chart, niejawna konwersja z VARBINARY na DATE powinna być OK. Jednak, gdy próbuję poniższy kod, SQL Server odpowiada z "Implicit konwersji z typu danych varbinary (max) do daty nie jest dozwolone. Użyj funkcji CONVERT, aby uruchomić to zapytanie."Serwer SQL: domyślna tabela konwersji typów danych

CREATE TABLE [dbo].[CONVERSION_TEST](
[mydate] [date] NULL 
) ON [PRIMARY] 

GO 


declare @bin varbinary(MAX) = NULL 
insert into conversion_test values (@bin) 

Uruchomiłem to na SQL Server 2012 (wersja 11.0.3128).

Odpowiedz

4

Wystarczy znaleźć to connect wpis:

Microsoft Connect

który ma następujące oświadczenie Microsoft:

Wysłany przez Microsoft w dniu 05/03/2008 na 13:23 Po jakimś poważnym dyskusji, uważamy, że obecny projekt jest dobry, zwłaszcza, że ​​nie jest to interesujący scenariusz i już wspieramy wyraźną konwersję dla nowych typów daty/czasu.

Z drugiej strony uważamy również, że niekoniecznie jest to dobre, ponieważ obsługiwaliśmy zbyt wiele niejawnych konwersji istniejących typów . Konwersja do/z pliku binarnego jest niebezpieczna i wymagająca wyraźnej konwersji ma sens. To niefortunne, że zachowanie ALTER TABLE jest powiązane z niejawną konwersją, ale zawsze można pracować wokół niego, tworząc nową kolumnę, wydając aktualizację, a następnie upuszczając starą kolumnę , jeśli jest to główny scenariusz niepokojący.

Więc jeśli nie silny sprzeciw, mamy zamiar wykonać następujące czynności: - Mocowanie BOL, aby wskazać, że nie ma niejawny wsparcie konwersji z binarnym/varbinary do nowych typów data/czas - Zamknij to jako " by Design”

dzięki

Więc wydaje się, że zdecydowali się uniemożliwić ten niejawna konwersja ale nie aktualizuje ten schemat.

+0

Rzeczywiście jest to błąd w dokumentacji :(Szkoda, naprawdę moglibyśmy skorzystać z tej funkcji. – Eyvind

+0

Tak, opublikowaliśmy informację zwrotną na temat artykułu w nadziei, że go zaktualizują, ale nie trzymam mój oddech. – steoleary

Powiązane problemy