Instrucțiuni inserați sfaturi și trucuri sql server - sql programare

Platforma SQL Server suportă pentru instrucțiunea INSERT mai multe extensii standard ANSI. Suportă mai multe funcții pentru lucrul cu seturi de rânduri (explicațiile de mai jos), precum și capacitatea de a insera rezultatele din procedurile stocate și procedurile extinse direct în tabela țintă. Sintaxa instrucțiunii INSERT din SQL Server este după cum urmează.

INSERT [INTO] tbl_name [(coloana 1 [, ...])

VALORI (variabilă 1 [, ...])

INSCRIEȚI [INTO] table_name

Ținta pentru inserare este o tabelă, o vizualizare sau o funcție care funcționează cu seturi de date (funcții de seturi de mulțimi). Când este inserat într-o vizualizare, instrucțiunea INSERT nu poate afecta mai mult de o tabelă de vizualizare de bază, dacă există mai multe. Funcții pentru seturi de date permit SQL Server pentru a primi date de la surse speciale sau externe, cum ar fi fluxuri XML, structura de fișiere de căutare full-text (structuri speciale, care sunt utilizate în SQL Server pentru stocarea într-o bază de date astfel de lucruri cum ar fi documente Microsoft Word și prezentarea MS PowerPoint ) și surse externe de date (cum ar fi foi de calcul Microsoft Excel). Exemple sunt date mai târziu în această secțiune. În prezent, SQL Server acceptă următoarele funcții pentru instrucțiunea INSERT pentru a lucra cu seturi.

Instrucțiunea de tranzit INSERT pentru serverul conectat este executată. Aceasta este o modalitate eficientă de a executa instrucțiuni INSERT imbricate în surse de date externe în raport cu SQL Server. Sursa de date trebuie mai întâi declarată ca un server conectat.

O instrucțiune de tranzit INSERT este executată pentru o sursă de date externă. Această teză este similară cu OPENDATASOURCE, cu excepția faptului că clauza OPENDATASOURCE deschide numai sursa de date, dar nu transmite declarația INSERT la ea. Oferta OPENROWSET este destinată exclusiv utilizării rare.

Specificați una sau mai multe coloane ale tabelului țintă. Lista trebuie să fie închisă în paranteze, iar elementele sale trebuie separate prin virgule.

Platforma PostgreSQL încearcă să efectueze o conversie de tip automat, în cazul în care expresia în clauza VALUE a interogării secundare sau lista de articole nu coincid cu tipurile de date definite pentru tabela destinație sau vizualizare, inserează automat valorile din coloanele de identitate, TIMESTAMP și coloane cu constrângeri implicite.

Instrucțiunea va crea un rând nou, utilizând toate valorile implicite specificate pentru acest tabel.

Se va executa o declarație dinamică Transact-SQL, o procedură stocată, o procedură de apel la distanță (RPC) sau o procedură memorată extinsă, iar rezultatele vor fi stocate în tabelul local. procedure_name este numele procedurii pe care doriți să o efectuați. Puteți folosi, de asemenea, oricare dintre parametrii parametrului procedură stocată este specificată ca @ (@ semn este obligatoriu) pentru a atribui valori ale parametrilor și, dacă se dorește, pentru a identifica orice parametru ca o ieșire (IEȘIRE). Coloanele returnate în setul de date rezultat trebuie să se potrivească coloanelor din tabelul țintă.

Deși SQL Server atribuie automat valorilor coloanelor IDENTITY a TIMESTAMP, platforma nu face acest lucru pentru coloanele UNIQUEIDENTIFIER. Oricare dintre coloanele cu primele tipuri de date pe care le puteți omite în lista de valori și în lista coloanelor, dar nu puteți sări peste coloanele UNIQUEIDENTIFIER. Pentru a genera și introduce un identificator unic global (GUID), trebuie să utilizați funcția NEWIDQ.

INSCRIEȚI ÎN guid_sample (global_ID, sample_text, sample_int)

VALORI (NEWID (), "introduceți prima înregistrare", "10000")

Când porniți un cod de la platformă la platformă, rețineți că inserarea unui șir gol în coloanele TEXT și VARCHAR din SQL Server are ca rezultat un șir de lungime zero. Aceasta nu este aceeași cu valoarea NULL, așa cum o interpretează unele platforme.

În exemplele instrucțiunilor INSERT ... EXEC de mai jos, este creat mai întâi un tabel temporar cu numele #ins_exec_container. După aceea, operația de inserare obține o listă a elementelor din directorul C: temp și o salvează într-un tabel temporar, iar a doua instrucțiune INSERT execută o instrucțiune SELECT dinamic.

CREATE TABLE #ins_exec_container (result_text

VARCHAR (300) NULL) Du-te

INSCRIEȚI ÎN #ins_exec_container

EXEC master.xp_cmdshell 'dir c: temp'

INTRODUCEȚI ÎN VANZARE

Această funcționalitate poate fi foarte utilă în proceduri stocate, de exemplu, dacă doriți să pună în aplicare logica de afaceri folosind proceduri stocate Transact-SQL pentru a determina starea de obiecte în baza de date și în afara, iar apoi a efectua o acțiune pe baza acestor rezultate.

Platforma SQL Server vă permite să utilizați sfaturile optimizatorului pentru a ocoli strategia implicită de optimizare pentru instrucțiunile INSERT. Acest tip de setare este recomandat numai pentru cei mai competenți utilizatori. Pentru informații complete despre indicațiile care pot fi utilizate cu instrucțiunea INSERT, consultați documentația producătorului.

Informații suplimentare despre acest subiect

Reguli și metode pentru utilizarea instrucțiunii GRANT în baze de date pe platforma SQL Server

Metode și metode pentru utilizarea instrucțiunii DELETE în bazele de date de pe platforma SQL Server

Unele sfaturi și tehnici pentru utilizarea instrucțiunii INSERT în bazele de date de pe platforma MySQL

Metode și metode de utilizare a instrucțiunii DROP în baze de date pe platforma SQL Server

Articole similare