Transact-SQL, modificarea bazei de date și tabele

Modificarea bazei de date

Pentru a schimba structura fizică a bazei de date utilizate de instrucțiuni ALTER BAZA DE DATE. limbaj Transact-SQL vă permite să efectuați următorii pași pentru a schimba proprietățile bazei de date:

adăuga și șterge unul sau mai multe fișiere de baze de date;

adăuga și șterge unul sau mai multe fișiere jurnal;

adăuga și șterge fișiere de grup;

modifica proprietățile de fișiere sau grupuri de fișiere;

instalarea opțiunilor de baze de date;

schimba numele bazei de date prin utilizarea unei proceduri de sp_rename stocate.

Aceste diferite tipuri de modificări de baze de date discutate mai târziu.

Adăugarea și ștergerea fișierelor de baze de date, fișierele jurnal și grupuri de fișiere

Adăugarea sau ștergerea fișierelor bazei de date se face prin instrucțiunea ALTER DATABASE. Operația pentru a adăuga un nou sau șterge un fișier existent este specificat și oferă ADD FILE ELIMINAȚI FILE respectiv. În plus, un nou fișier poate fi definită într-un grup de fișier existent prin setarea la filegroup.

Următorul exemplu arată cum să adăugați un nou fișier de bază de date în SampleDb baza de date:

În acest exemplu, instrucțiunea ALTER DATABASE adaugă un nou fișier cu un nume sampledb_dat1 logic. Acesta a indicat, de asemenea, 10 MB dimensiunea inițială fișier și auto-incrementare de 5 MB la o dimensiune maximă de 100 MB. Fișierele jurnal sunt adăugate precum fișierele bazei de date. Singura diferență este că în loc oferte ADD clauza FILE este utilizat ADD LOG FILE.

Ștergerea fișierelor (fișiere de baze de date și fișierele jurnal) din baza de date se face prin oferirea REMOVE FILE. Fișier de șters trebuie să fie gol.

Noul fișier este creat de un grup de propuneri CREATE filegroup. iar curentul este îndepărtat prin propunerile DELETE filegroup. Cum și șterge fișiere, șterge grupul de fișiere trebuie să fie, de asemenea, gol.

Modificarea proprietăților de fișiere și grupuri de fișiere

Cu propuneri Modify fișier pentru a efectua următorii pași pentru a modifica proprietățile unui fișier:

modificați numele de fișier logic folosind parametrul NEWNAME;

crește valoarea de mărime;

modificați valoarea proprietăților filename. MAXSIZE și FILEGROWTH;

marcați fișierul ca OFFLINE.

De asemenea, prin intermediul propunerilor PRELUCRARE filegroup se poate efectua următoarele acțiuni pentru a modifica proprietățile grupului de fișier:

modificați numele de fișier logic al grupului, folosind parametrul NAME;

tag-ul de fișier de grup ca grupul de fișier implicit folosind opțiunea implicită;

grup de fișiere tag-ul, deoarece permite utilizarea parametrului sau READ_ONLY read_write, respectiv, pentru a avea acces read-only sau citire-scriere.

Setarea opțiunilor de baze de date

Pentru a seta diverse opțiuni de baze de date folosind ALTER DATABASE instrucțiunile de oferta set. Unele opțiuni pot fi setate numai ON sau OFF, dar cele mai multe dintre ele au posibilitatea de a alege dintr-o listă de valori posibile. Fiecare opțiune de bază de date are o valoare prestabilită, care este stabilită în baza de date model. Prin urmare, valorile anumitor opțiuni implicite pot fi modificate prin modificarea bazei de date model.

Toate opțiunile ale căror valori pot fi modificate, pot fi împărțite în mai multe grupe, dintre care cele mai importante sunt starea opțiunii, opțiunea de acțiuni automate și opțiunea SQL.

Opțiuni controlează starea de următoarele caracteristici:

accesul la baza de date de utilizatori (această opțiune single_user, restricted_user și multi_user);

statutul bazelor de date (această opțiune on-line, off-line și de urgență);

citește și modul (READ_ONLY și opțiunea read_write) a scrie.

Opțiuni operații automate de control, printre altele, opriți baza de date (Auto_Close opțional) și modul de a crea statistici index (auto_create_statistics și auto_update_statistics opțiune).

Opțiunea SQL controlează baza de date respectivă și obiectele standard ANSI. Valorile tuturor declarațiilor SQL pot fi găsite prin funcția DATABASEPROPERTY. și editare - folosind instrucțiunea ALTER DATABASE.

Opțiuni de a restabili logat vrac și control simplu procesul de recuperare completă, baze de date.

Stocarea tipului de date filestream

Descriind tipurile de date T-SQL am examinat tipul de date FILESTREAM, precum și motivele pentru care acestea sunt utilizate. În această secțiune, vom discuta despre modul în care tipul de date FILESTREAM pot fi stocate în baza de date. date FILESTREAM care pot fi stocate în baza de date, sistemul ar trebui să fie inițiat în mod corespunzător. Următoarea secțiune explică modul de inițiere a sistemului de operare și instanța bazei de date de tipul de date magazin FILESTREAM.

Inițiere stocare FILESTREAM

tip FILESTREAM DataStore necesară pentru a iniția la două niveluri:

pentru sistemul de operare Windows;

pentru o anumită instanță a serverului de baze de date.

Transact-SQL, modificarea bazei de date și tabele

SQL Server Configuration Manager va crea un sistem pentru a găzdui un nou folder public cu numele specificat. Pentru a aplica modificările, faceți clic pe OK.

Pentru a activa stocarea FILESTREAM, trebuie să fiți administrator pe sistemul local pentru Windows și să fie un administrator (sysadmin). Pentru ca modificările să aibă efect, trebuie să reporniți instanța a serverului de baze de date.

Următorul pas este de a rezolva stocarea FILESTREAM pentru un caz particular. Vom vedea cum de a efectua această sarcină cu ajutorul mediului SQL Server Management Studio. (Pentru a face acest lucru, puteți utiliza stocate de sp_configure cu LEVEL opțiunea FILESTREAM ACCES.) Faceți clic dreapta pe instanța dorită în Object Explorer și din meniul contextual, selectați Properties, în panoul din stânga, care se deschide caseta de dialog Server Properties, faceți clic pe Advanced (Avansat):

Transact-SQL, modificarea bazei de date și tabele

Apoi, în lista verticală panoul din dreapta, selectați FILESTREAM Nivel de acces (nivel de acces FILESTREAM), una dintre următoarele opțiuni:

Pentru persoane cu handicap - depozitare FILESTREAM nu este permisă.

Transact-SQL este activat accesul

Inclus de acces prin intermediul Transact-SQL - date FILESTREAM pot fi accesate prin instrucțiuni T-SQL.

Acces deplin activat

Inclusiv acces complet - la datele FILESTREAM pot fi accesate atât prin instrucțiunile T-SQL, și prin intermediul interfeței Win32 API.

Adăugarea unui fișier într-un grup de fișiere

FILESTREAM permițând stocarea unui exemplu se dorește, se poate crea mai întâi un grup de fișiere de date FILESTREAM (prin instrucțiuni ALTER DATABASE), apoi adăugați un fișier la grupul de fișier așa cum se arată în exemplul de mai jos. (Desigur, această sarcină poate fi realizată folosind DATABASE CREATE.)

Prima declarație ALTER DATABASE în exemplul adaugă un grup nou fișier de bază de date Employee_FSGroup SampleDb. Parametrul CONȚINE FILESTREAM această declarație indică sistemului că grupul de fișier va conține doar datele FILESTREAM. A doua declarație ALTER DATABASE adaugă un grup de fișier creat un nou fișier.

Acum puteți crea tabele care conțin coloane de date de tip FILESTREAM. Crearea unui astfel de tabel este prezentat în exemplul de mai jos:

În acest exemplu, tabelul conține coloană EmployeeInfo FilestreamData al cărui tip de date trebuie să fie VARBINARY (MAX). Determinarea unei astfel de coloană include atribut FILESTREAM care indică faptul că datele stocate în grupul de coloane de fișier FILESTREAM. Pentru toate tabelele în care sunt stocate tip de date FILESTREAM, necesită proprietăți ROWGUIDCOL unice. Prin urmare, tabelul conține o coloană Id EmployeeInfo, determinată folosind aceste două atribute.

datele FILESTREAM din coloana de tip sunt introduse printr-o instrucțiune INSERT standard de. Și pentru a citi datele folosind o instrucțiune SELECT standard de.

Stand-alone de baze de date

Una dintre problemele majore cu bazele de date SQL Server este că acestea sunt dificil de export și import. Așa cum sa discutat anterior, baza de date poate fi atașat și detașat, dar a pierdut părți importante ale proprietății și bazele de date atașate. (Problema principală în astfel de cazuri este baza de date de securitate, în general, și înregistrări, în special, în care, după mutarea în mod normal, o informație lipsă sau conține informații incorecte).

Microsoft are planuri de a rezolva aceste probleme prin utilizarea stand-alone de baze de date (baze de date conținute). Stand-alone bază de date conține toți parametrii și datele necesare pentru a determina baza de date, și este izolat de instanță a motorului de baze de date, pe care este instalat. Cu alte cuvinte, acest tip de baze de date nu are dependențe de instanța de configurare și poate fi ușor de mutat dintr-o instanță SQL Server la altul.

Pentru cea mai mare parte, în ceea ce privește autonomia, există trei tipuri de baze de date:

complet autonom de baze de date;

bază de date parțial autonomă;

bază de date non-autonome.

În totalitate aceste baze de date sunt obiecte autonome, care nu se pot deplasa prin limita de aplicare. (Limita de aplicare este determinată de sfera de aplicare. De exemplu, funcțiile definite de utilizator sunt situate în limitele cererii, în timp ce funcțiile asociate instanțele de server sunt în afara limitelor aplicației.)

Parțial aplicații de baze de date autonome permite obiectelor să traverseze frontiera, in timp ce baza de date non-autonomă nu acceptă conceptul de limită de aplicare.

ALTER DATABASE modifică starea bazei de date autonomie SampleDb cu caractere non-autonome și parțial autonome. Acest lucru înseamnă că acum sistemul de baze de date vă permite să creați ambele obiecte independente, non-autonome de baze de date SampleDb. Toate celelalte instrucțiuni în exemplul sunt complementare ALTER DATABASE.

Funcția sistemului sp_configure este o procedură care poate fi utilizată, printre altele, să modifice configurația parametrilor suplimentari, cum ar fi "autentificarea bazei de date conținute. Pentru a modifica opțiunile avansate de configurare, trebuie mai întâi să setați valoarea „Opțiuni avansate“ afișează valoarea 1, și apoi reconfigura sistemul (declarația reconfigura). La sfârșitul codului din nou, acest parametru este atribuit valoarea implicită - 0.

Acum puteți crea un utilizator care nu este legată de un cont pentru datele bazei de date SampleDb.

Modificarea tabelelor

Pentru a modifica schema tabelei utilizată ALTER TABLE. limba Transact-SQL oferă următorul tabel de modificări:

adăuga și șterge coloane;

modifica proprietățile coloanelor;

adăuga și elimina restricțiile pentru a asigura integritatea;

activa sau dezactiva limita;

redenumi tabele și alte obiecte de baze de date.

Aceste tipuri de modificări sunt considerate în continuare în următoarele secțiuni.

Adăugarea și ștergerea coloanelor

Pentru a adăuga o nouă coloană la un tabel existent în instrucțiunea ALTER TABLE este utilizată propunerea ADD. Într-o instrucțiune ALTER TABLE, puteți adăuga doar o singură coloană. Ofertele aplicație Adăugați prezentat în exemplul de mai jos:

În acest exemplu, instrucțiunea ALTER TABLE adaugă o coloană din tabelul NumărTelefon angajatului. Baza de date Motorul umple noua coloană valori valori implicite NULL sau de identitate sau specificați. Din acest motiv, o nouă coloană ar trebui să fie să sprijine valoarea NULL, sau pentru ca acesta să fie setat la valoarea implicită.

Noua coloană nu poate fi inserat într-o tabelă într-o anumită poziție. Coloana a adăugat teză ADD, este întotdeauna inserat la capătul mesei.

Coloanele din tabel sunt șterse prin oferirea DROP COLUMN. Aplicarea acestei propuneri în exemplul următor:

În acest cod, ALTER TABLE șterge coloană de tabel Angajat NumărTelefon, care a fost adăugat la acest tabel o propunere ADD mai devreme.

Modificarea proprietăților coloană

Pentru a modifica proprietățile unei coloane ofertă utilizată ALTER COLOANA existente ALTER TABLE. Pot fi supuse schimbării următoarele proprietăți ale unei coloane:

Susțineți valori NULL.

Aplicație oferă ALTER COLUMN se arată în exemplul de mai jos:

ALTER TABLE în acest exemplu, modificați proprietățile inițiale (NCHAR (40), sunt permise valori de NULL), coloana Amplasarea tabelului la noul Departamentul (NCHAR (25), valorile nu sunt permise NULL).

Adăugarea și eliminarea constrângerilor pentru a asigura integritatea (și cheile de verificare)

Pentru a adăuga un tabel de noi restricții pentru a se asigura parametrul de integritate este utilizat ADD CONSTRAINT ALTER TABLE. Următorul exemplu ilustrează utilizarea constrângerii parametrului ADD pentru a adăuga o constrângere de verificare, și determinarea cheia primară a tabelului:

În acest exemplu, prima TABLE CREATE creează un tabel de vânzare, care conține două coloane cu tipuri de date sunt DATA: ORDERDATE și SHIPDATE. În plus, instrucțiunea ALTER TABLE definește o restricție pentru a asigura integritatea order_check, care compară valoarea atât a acestor coloane, și afișează un mesaj de eroare în cazul în care data expedierii SHIPDATE mai devreme decât data ORDERDATE comenzii. Mai multe ALTER TABLE este folosită pentru a determina cheia primară a tabelului în ID-ul coloanei.

Limitări pentru a asigura integritatea pot fi eliminate prin oferirea TABLE DROP CONSTRAINT ALTER, așa cum se arată în exemplul de mai jos:

Identificati limitările existente nu pot fi modificate. Pentru a schimba limita, este mai întâi necesar să se îndepărteze, și apoi să creați o nouă, care conține modificările necesare.

Activarea și dezactivarea constrângeri

Următorul exemplu arată cum să dezactivați toate tabelul constrângeri:

Toate tabelul Restrângerea vânzărilor sunt dezactivate de cuvânt cheie. Se aplică opțiunea NOCHECK nu este recomandată deoarece orice încălcare a constrângerilor reprimate poate cauza erori în actualizări viitoare.

tabele Redenumirea și alte obiecte de baze de date

Pentru a modifica numele unui tabel existent (sau orice alte obiecte de baze de date, cum ar fi o bază de date, vizualizare sau procedură stocată), se aplică procedura sistemului sp_rename. Exemplul următor ilustrează utilizarea acestei proceduri sistem:

Utilizați procedura de sistem sp_rename este puternic descurajată, deoarece schimbarea de nume de obiecte pot afecta alte obiecte de baze de date pe care le fac referire. În schimb, eliminați obiectul și recrea-l cu noul nume.

Ștergerea obiectelor bazei de date

Toate declarațiile Transact-SQL pentru a elimina obiectele bazei de date au următoarea formă generală:

Pentru fiecare instrucțiune CREATE obiect pentru a crea un obiect are un obiect corespunzător instrucțiune DROP pentru a elimina. Instrucțiuni pentru îndepărtarea uneia sau mai multor baze de date este după cum urmează:

Această declarație șterge permanent baza de date din sistemul de baze de date. Pentru a șterge una sau mai multe tabele, se aplică următoarea declarație:

Când ștergeți un tabel șterge toate datele sale, indexurile și declanșează. Dar ideea a început pe o masă la distanță nu sunt eliminate. Tabelul poate șterge numai utilizatorul care are permisiunile corespunzătoare.

BAZA DE DATE Pe lângă obiect și TABLE, în obiecte DROP pot fi specificate parametrii de declarație, printre altele, urmatoarele facilitati: