Introducere în filestream - software-ul

Pentru a sprijini tipul FileStream este necesară la nivelul bazei de date pentru a avea grupul de fișier corespunzător. În ceea ce flename pentru acest grup servește un director local în sistemul de fișiere. Nu putem accepta fișierul într-un mod arbitrar, Serveru-l împinge SQL și spune, uite, acest lucru este faylstrim dumneavoastră câmp într-o astfel de înregistrare. După cum vom vedea, putem doar copia conținutul acestei casete de fișiere, și va fi stocată în fișierul, pe care îl va duce la SQL Server, și de apel, în conformitate cu normele sale.

Asta vine după crearea de baze de date în directorul c: \ Temp:

Introducere în filestream - software-ul

Înregistrată în grupul de nume de fișier filestreamovskoy este un folder pe o unitate locală. În cazul în care oferta depune o minge, obmaterili:

crearea unor baze de date privind TestFS1

primar (nume = TestFS_data, filename = 'c: \ Temp \ TestFS_data.mdf'),

filegroup FG1 conține filestream

(Nume = TestFS_media, filename = '\\ 192.168.0.1 \ c $ \ Temp \ TestFS_media')

log on (name = TestFS_log, filename = 'c: \ Temp \ TestFS_log.ldf')

Msg 5135, Nivel 16, stat 2, linia 1

'192.168.0.1 \ c $ \ Temp \ TestFS_media \\' Calea nu poate fi utilizată pentru fișierele FILESTREAM. Pentru informații despre căile acceptate, consultați SQL Server Books Online.

Msg 1802, Nivel 16, stat 2, linia 1

CREATE DATABASE nu a reușit. Unele nume de fișiere enumerate nu a putut fi creat. Verificați erorile aferente.

Calea specificată trebuie să existe până la nivelul n-1, în cazul nostru - c: \ Temp. Folder TestFS_media nu ar trebui să fie.

Puteți crea mai multe grupuri de fișiere de tip faylstrim:

dar numai unul poate fi un dosar înregistrat în faylgruppe faylstrimovskoy. Deci nu se poate face:

filegroup FG1 conține filestream

(Name = TestFS_media, filename = 'c: \ Temp \ TestFS_media'),

(Nume = aaa, filename = 'c: \ aaa')

Ie overclock automat fișierele faylstrimovskie în dosare diferite nu vor funcționa.

După crearea unei baze de date cu grup de fișiere faylstrimovskoy, puteți crea tabele cu câmpuri faylstrimovskimi. CREATE TABLE tip declarație câmp filestream - un BLOB obișnuit (VARBINARY (max)) atribut filestream.

În prezența unui câmp filestream a mesei este de asemenea obligatoriu câmp prezență uniqueidentifier. Acesta poate fi nici o valoare implicită, dar trei atribute: unic, rowguidcol, nu null sunt obligatorii pentru el. În timp ce pe uniqueIdentifier și uniqueIdentifier să fie unice, această condiție impune ca, de exemplu, în noua înregistrare nu a primit valoarea de cea anterioară. În plus, instrumentul de optimizare este mult sentiment mai plin de bucurie atunci când vede un unic clar. Caracteristica rowguidcol permite accesul la câmp nu după nume, precum și $ rowguid: de ex. selectați $ rowguid de la Media. Este clar că acest domeniu ar trebui să fie numărul unu pe masă. Ceea ce aduce importanța fundamentală a acestui atribut, eu, sincer, eu nu presupun să spun. Pur și simplu, există situații care au nevoie de ea, și așa să fie. îmbinare replicare Anterior, au fost tratate, acum aici faylstrim adăugat.

Nu este necesară prezența cheii primare. În acest caz, am putea face fără un id câmp. L-am adus aici de dragul de comoditate, deoarece Exemplu de scriere unde id = <целое> mai ușor decât memorarea GUID.

Posteriori pentru a afla dacă câmpul atribut are FILESTREAM, puteți:

selectați * de la sys.columns în cazul în care object_id = object_id ( 'Media', 'masă') și system_type_id = type_id ( 'VARBINARY') și MAX_LENGTH = -1 și is_filestream = 1

Pe masă este creat în C: \ Temp \ TestFS_media (grup de parametri numele fișierului filestream la crearea unei baze de date) a existat un director numit unele de masă corespunzătoare Guida în ea - o, de asemenea, cu numele unui Guido sootvetstvuyushaya filestream câmp în acest tabel (lor poate fi oarecum pe numărul de astfel de câmpuri).

Introducere în filestream - software-ul

Introducere în filestream - software-ul

Introducere în filestream - software-ul

Acum, să se adauge înregistrării:

După introducerea în dosarul foaie există trei dosare cu numele de Guido, care corespund celor trei înregistrări inserate. Sub NULLovoe fișier valoare nu pornește în BLOB trebuie să fie ceva care nu este gol. șir gol - este non-gol.

Introducere în filestream - software-ul

Aici am a editat:

conservate și uite ce sa întâmplat:

Introducere în filestream - software-ul

Ca un exemplu de modul în care aceasta se află sub controlul SQL Server, a se vedea modul în care rezervă faylstrimy împreună cu baza. face

Apoi, începe în scădere bază, în timp ce un dosar TestFS_media dispare din c: \ Temp cu toate fișierele, care stochează conținutul câmpului de la diferite intrări de tabel faylstrim Media. Bază de date de restaurare:

Introducere în filestream - software-ul

Aici, cu MOVE - echipament standard, în care reducerea indică faptul că numele fișierelor logice va corespunde acum la diferite căi fizice. Noi spunem că C: \ Temp \ TestFS_media mutat cu: \ aaa. În același timp, pe un disc: creează automat un dosar aaa, care sa transformat faylstrimovskaya faylgruppa. La fel ca atunci când creați o bază de date, toate arată calea trebuie să existe pe disc, rădăcină la nivelul n-1, și anume, dacă am spus cu mutarea 'TestFS_media' la 'C: \ aaa \ bbb', nu angaja.

Ca hierarchyid, despre care eu sunt destul de ranted în posturile anterioare, și tipuri de geospațiale, vorbesc care este încă să vină, tipul filestream este acceptat în liberă SQL Server, care este SQL Express. Mai mult decât atât, la baza dimensiunii limită pentru SQL Express nu se aplică acelor date care sunt în Blobs faylstrimovskih.

articole similare