typów TEXT
, NTEXT
i IMAGE
są przestarzałe - nie używać ich do nowego rozwoju. Zostaną one na dobre usunięte z przyszłej wersji SQL Server.
W przypadku SQL Server 2005 i nowszych wersji należy użyć VARCHAR(MAX)/NVARCHAR(MAX)
, jeśli mamy do czynienia z plikami czysto tekstowymi (takimi jak kod źródłowy lub pliki CSV) lub VARBINARY(MAX)
, jeśli mamy do czynienia z plikami binarnymi.
Umożliwiają one do 2 GB pamięci dla każdego pojedynczego pliku i można używać na nich wszystkich standardowych funkcji łańcuchów T-SQL (do (N) pól VARCHAR (MAX), to znaczy).
Jeśli używasz programu SQL Server 2008, dostępna jest również dodatkowa opcja - atrybut FILESTREAM
w kolumnach VARBINARY(MAX)
. Umożliwia to przechowywanie plików w systemie plików maszyny SQL Server (zamiast tabel bazy danych) przy zachowaniu integralności transakcji i danych.
FILESTREAM jest zalecany do plików, które mają zazwyczaj rozmiar większy niż 1 MB lub jeśli potrzebujesz więcej niż 2 GB (ponieważ nie możesz przechowywać więcej niż 2 GB w zwykłej kolumnie VARBINARY(MAX)
).
Marc
Czy rzeczywiście próbuje zapisać cały plik jako podmiotu w bazie danych, czy też po prostu chcesz przesłać dane w pliku csv w tabeli? – flayto
Chcę przechowywać plik jako encję. – andreiursan