Transact-sql, inserare date

În plus față de instrucțiunea SELECT, care a fost considerată anterior, limbaj de manipulare a datelor DML (Data Manipulation Language) conține alte trei situații: INSERT, UPDATE, și DELETE. Ca și instrucțiunea SELECT, cele trei instrucțiuni funcționează fie pe tabele sau vizualizări. Acest articol discută despre INSERT, iar celelalte două instrucțiuni sunt discutate în articolul următor.

ghid INSERT inserează rânduri (sau porțiuni de rânduri) în tabel. Există două forme diferite ale acestor instrucțiuni:

Prima formă de instrucțiuni vă permite să inserați în tabel un rând (sau o parte din ea). O a doua formă de instrucțiuni INSERT permite să inserați un tabel în setul de rezultate, instrucțiuni SELECT sau procedură stocată efectuată de instrucțiunea EXECUTE. Procedura stocată trebuie să returneze datele care urmează să fie introduse în tabel. Aplicată la ghidul de instrucțiuni INSERT SELECT pot alege valori dintr-un alt sau același tabel, în care se introduce date, cu condiția de compatibilitate a coloanelor de tipuri de date.

Pentru ambele forme de tipul de date al fiecărei valori inserabile trebuie să fie compatibile cu tipul coloanei corespunzătoare din datele din tabel. Toate datele șir de timp și trebuie să fie închise în ghilimele; sunt necesare valori numerice între ghilimele.

Introduceți un rând

Pentru ambele forme de instrucțiune INSERT precizează în mod expres lista de coloane este opțională. Absența unei liste de coloane este echivalentă cu specificarea toate coloanele din tabel.

Opțiunea valori implicite introduce valorile implicite pentru toate coloanele. În coloanele cu tipul de date TIMESTAMP sau valorile de proprietate de identitate sunt introduse în mod implicit, generate automat de către sistem. Pentru alte tipuri de coloane de date care corespund valorii nenulă este introdusă în mod implicit, în cazul în care aceasta există, sau NULL, altfel. În cazul în care coloana nu este NULL valori sunt permise și nu specificați o valoare implicită pentru aceasta, punerea în aplicare a instrucțiunii INSERT eșuează și este afișat un mesaj.

Următorul exemplu arată rândurile Fragment din tabelul bazei de date angajaților SampleDb, demonstrând declarația de utilizare INSERT pentru a introduce o cantitate mică de date în baza de date:

Există două moduri diferite de a introduce noi valori șir. Declarația Fragment din exemplul următor utilizează în mod explicit cuvântul cheie NULL și introduce o valoare NULL în coloana corespunzătoare:

Pentru a introduce valori în unele (dar nu toate) coloane într-un tabel, este de obicei necesar să se precizeze în mod explicit coloanele. Nu sunt specificate sau coloane trebuie să permită valori NULL, sau pentru ca acestea să fie definite este implicit.

Cele două exemple anterioare sunt echivalente. În coloana tabelul angajatului numai care permite valori NULL este coloana DepartmentNumber, și pentru toate celelalte coloane, această valoare a fost interzis propunerea NOT NULL în CREATE TABLE.

Ordinea valorilor din propunerea VALUES INSERT poate fi diferită de ordinea specificată în instrucțiunea CREATE TABLE. În acest caz, ordinea lor trebuie să coincidă cu ordinea în care coloanele respective sunt enumerate în lista de coloane. Mai jos este un exemplu de introducere a datelor într-o ordine diferită de cea originală:

Introducerea mai multe rânduri

A doua formă de inserții INSERT în tabelul de una sau mai multe linii selectate printr-o subinterogare. Exemplul următor prezintă rândurile inserate în tabel folosind doua instrucțiune formular INSERT. În acest caz, cererea pentru numerele de eșantionare și numele departamentelor, cu sediul la Moscova, și încărcând rezultatul rezultat stabilit la noul tabel creat anterior.

Produs în exemplul de mai sus MoscowDepartment tabel nou are aceleași coloane ca Departamentul de masă existente, cu excepția pentru coloana lipsă de amplasare. Subinterogare în instrucțiunea INSERT din Departamentul Tabel selectează toate rândurile pentru care valoarea coloanei de locație este „București“, care sunt apoi introduse în creat la începutul unui nou tabel de interogare.

Următorul exemplu arată o altă metodă de a insera rânduri într-un tabel folosind doua instrucțiune formular INSERT. În acest caz, cererea de un eșantion de numere de personal, numere de proiect și datele de la începutul lucrărilor la proiect pentru toți angajații cu funcția de „administrator“, care lucrează pe p2 proiectului și apoi descărcați rezultatul stabilit într-un nou tabel care este creat la începutul interogare:

Înainte de a introduce rânduri folosind instrucțiuni INSERT MoscowDepartment ManagerTeam și tabele erau goale (în exemplele de mai sus). Dacă tabelul existat deja și conținea un șir de caractere cu datele, apoi la noua sa linie va fi adăugată.

Tabel Constructorilor de valori, și instrucțiunea INSERT

tabel Designer de valori sau string (tabel (rând) valoarea constructor) permite de a introduce mai multe înregistrări în tabel (rânduri) prin instrucțiuni de limbaj DML, cum ar fi, de exemplu, INSERT sau UPDATE. Exemplul următor prezintă inserția în tabelul de mai multe rânduri, folosind un constructor prin instrucțiuni INSERT:

În acest exemplu, inserțiile de ghidare inferior INSERT simultan trei rânduri în cadrul Departamentului de masă, folosind un constructor de masă valoare. După cum puteți vedea, această sintaxă constructor este destul de simplu. Pentru a introduce un rând în datele tabelului de constructor tabel valoare enumere valorile fiecărui rând în paranteze divid valorile fiecărei liste și virgulă liste separate.

articole similare