Nije odabrana nijedna komponenta za ažuriranje sql -a. SQL upiti za ažuriranje podataka (UPDATE)

U ovom članku ću govoriti o procesu ažuriranja baza podataka. Microsoft podaci SQL Server i ponuditi softverski proizvod koji se može koristiti u interakciji kupca i izvođača.

Prije svega, zašto je to potrebno

Naša kompanija se razvija softvera i u većini slučajeva koristimo Microsoft SQL Server kao DBMS. Radi definitivnosti, nazvat ćemo razvojnu kompaniju “ izvođač", A kompanija klijent -" mušterija».

U procesu izmjene baze podataka, programeri izvršitelja generiraju skup skripti stvorenih ručno ili u specijaliziranom softveru.

Nakon toga nastaju takvi zadaci:

  1. na strani izvršitelja provjeriti izvršavanje skupa skripti u testnoj bazi podataka;
  2. na strani korisnika, izvršavanje skripti u korisničkoj proizvodnoj bazi podataka;
Pretpostavimo da i programer i tester sa pomoć od Microsofta SQL Server Managerment Studio (SSMS). Ali nemoguće je natjerati kupca da izvrši ove operacije u SSMS -u, jer:
  • možda uopće nema instaliran SSMS;
  • kupac možda nema znanja o radu s bazom podataka. I ne bi trebalo općenito;
  • u slučaju grešaka tijekom izvršavanja skripti, korisniku će biti teško prikupiti ih za slanje programerima;

Kako rješavamo navedeni problem

Razvili smo softverski proizvod Database Update Manager koji se sastoji od dva programa:
  • program za pripremu servisnog paketa;
  • program za izvršavanje servisnog paketa;
Ažurirajte program pripreme
Izvođač koristi program. Programeri ga koriste za formiranje skupa skripti u jednu datoteku.

Od značajki ovog programa mogu se primijetiti dvije točke:

  • informacije o strukturi referentne baze podataka mogu se dodati generiranom paketu ažuriranja. Ako su takve informacije prisutne u paketu, kupac nakon ažuriranja može uporediti strukturu svoje baze podataka sa referentnom;
  • za korisnika se program za izvršavanje ažuriranja prenosi kao jedan EXE datoteku, unutar kojih su zaštićene skripte i struktura referentne baze.
Ažurirajte program
Kao što je već spomenuto, program se pokreće pomoću jedne EXE datoteke. U većini slučajeva korisnik samo treba unijeti podatke o registraciji (usput, te se vrijednosti mogu ušiti u paket ažuriranja) i svuda pritisnuti "Dalje".

Na drugom ekranu se vrši ažuriranje. Nakon toga možete uporediti strukturu referentne baze ožičene u paket i trenutnu (na kojoj je izvršeno ažuriranje).

Analiza odstupanja u strukturi provodi se u grafičkom sučelju programa za ažuriranje.

Nažalost, uvid u odstupanja od strane programera izvršitelja vrši se u tekstualnu datotekučasopis, koji kupac naknadno šalje. Zanimljiv pristup rješavanju ovog problema predložen je u članku Kontrola promjena u strukturi baze podataka. Ovaj zadatak nije toliko kritičan; programeri mogu sami napisati skriptu kako bi doveli strukturu do cilja.

Softverski paket distribuira ugovor o licenci Besplatni softver, instalacijski program možete preuzeti ovdje

: Kako ispravno nadograditi SQL Server

Šta ako pitam: "Jesu li sva ažuriranja instalirana na vašem SQL serveru?"

Kako odgovarate na ovo pitanje? Pogledajte centar Windows ažuriranja?? Malo je vjerojatno da će ovo pomoći. Najvjerojatnije ćete tamo vidjeti sljedeću sliku:

Ali, začudo, to ne znači da su najnovija ažuriranja instalirana na SQL Serveru!

Za praćenje ažuriranja posebno za SQL server, Microsoft je stvorio posebnu stranicu -. Obeležite ga:

No, prije nego odete tamo, morate saznati koju smo verziju trenutno instalirali. Potreban nam je tačan broj uključujući i broj gradnje. Možete ga dobiti ako pogledate sistemsku varijablu @@ Verzija:

Zapamtite ove brojeve - samo ćemo pomoću njih moći odrediti koja smo ažuriranja već instalirali, a koja ne. SQL server za razliku od operativni sistem on nam ne govori o svakom od njih instalirano ažuriranje... Stoga morate raditi s brojem @@ Verzija.

Sada idemo u centar za ažuriranje SQL servera i tamo vidimo prikladan znak:

Ovdje su nam potrebne tri stvari:

  • Prvo zapamtite broj verzije za ovu nadogradnju. Na kraju postupka ažuriranja @@ Verzija naš SQL server bi trebao vratiti upravo ovaj broj.
  • Drugo, svakako biste trebali pogledati povijest brojeva sastavljanja koji odgovaraju ažuriranjima iz najnovijeg servisnog paketa. Ovo je važno jer će se kumulativno ažuriranje instalirati samo na servisnom paketu koji mu prethodi.
  • I treće, korisno je pogledati listu popravaka u zbirnom paketu. Administrator bi trebao biti svjestan promjena koje je uveo ovaj paket.

Gledajući brojeve verzija prethodnih ažuriranja, možemo vidjeti da je jaz u brojevima u odnosu na našu trenutnu verziju sumnjivo velik:

To je zato što nemamo instaliran SP1. Moramo to staviti na prvo mjesto.

A sada imamo plan akcije:

  1. Instalirajte servisni paket SP1.
  2. Instalirajte zbirno ažuriranje CU4.

Mi djelujemo! Nakon instaliranja SP1, provjerite broj @@ Verzija... Sa prvobitnih 2100.60, povećao se na 3000.0.

Zadnje ažuriranje: 13.07.2017

Naredba UPDATE koristi se za izmjenu postojećih redova u tablici. Ima sljedeću formalnu sintaksu:

UPDATE ime_tablice SET stupac1 = vrijednost1, stupac2 = vrijednost2, ... stupacN = vrijednostN

Na primjer, povećajmo cijenu svih proizvoda za 5000:

AŽURIRAJTE SET PROIZVODA Cijena = Cijena + 5000

Koristimo kriterij i mijenjamo naziv proizvođača iz "Samsung" u "Samsung Inc.":

AŽURIRAJTE SET proizvoda Proizvođač = "Samsung Inc." WHERE Proizvođač = "Samsung"

Složeniji upit - vrijednost polja proizvođača "Apple" zamijenite sa " Apple Inc. "u prva 2 retka:

UPDATE SET SET Proizvođač = "Apple Inc." IZ (ODABERI TOP 2 * IZ PROIZVODA GDJE Proizvođač = "Apple") KAO Odabran WHERE Products.Id = Selected.Id

Sa podupitom poslije ključna reč FROM dohvaća prva dva retka gdje je Manufacturer = "Apple". Ovom odabiru bit će dodijeljen odabrani pseudonim. Pseudonim je naveden nakon AS operatora.

Slijedi uslov ažuriranja Products.Id = Selected.Id. To jest, u stvari, imamo posla s dvije tablice - Proizvodi i Odabrano (koja je izvedena iz Proizvodi). Odabrano sadrži prva dva retka gdje je Proizvođač = "Apple". U proizvodima - općenito, sve linije. Ažuriranje se vrši samo za one redove koji su u odabiru Odabrano. To jest, ako tablica Proizvodi sadrži desetine proizvoda sa od strane Apple -a, tada će ažuriranje utjecati samo na prva dva od njih.

U ovom članku ćemo vam pokazati kako nadogradite svoje Evaluation Edition ili Express verziju SQL Servera 2008 R2 na punopravnu radnu verziju SQL Standarda ili Enterprise. Sličnim se zadatkom može suočiti kada nema nikoga za testiranje / razvoj softverski proizvod instalirana je evaluaciona verzija SQL Servera. Često se događa da se nakon završetka takvog testiranja / završetka probne verzije donese odluka o prebacivanju sistema u komercijalne operacije, za što je potrebno preći na potpuno opremljeno izdanje SQL Servera, ali ne želite ponovo instalirati DBMS.

Bilješka... Upute se odnose i na Microsoft SQL Server 2012 i R2.

Datum isteka za evaluacionu verziju SQL Servera SQL 2008 R2 (i novije verzije) je 180 dana... Nakon mature probni period usluga SQL Servera prestaje da se pokreće. U slučaju SQL Server Expressa, postoji ograničenje veličine baze podataka.

Licencnu licencu možete nadograditi bez potrebe za ponovnom instalacijom SQL Servera samo sa nižeg izdanja na starije, na primjer: Evaluation Edition / Express Edition sa Advanced Services -> Standard ili direktno na Enterprise.

Nakon završetka perioda testiranja, prilikom pokušaja otvaranja programa SQL Server Management Studio pojavljuje se prozor s greškom:

Period evaluacije je istekao. Za informacije o tome kako nadograditi softver za procjenu posjetite http://www.microsoft.com/sql/howtobuy

Ažuriranje MS SQL Servera 2008 R2

U prvom dijelu ćemo shvatiti kako ažurirati verziju SQL Servera pomoću licencnog ključa kupljenog od Microsofta ili partnera.

Pokrenite SQL instalacijski centar (Start -> Svi programi -> Microsoft SQL Server 2008 R2 -> Alati za konfiguraciju -> Instalacijski centar SQL Servera (64 -bitni)).

Savjeti... Isti prozor možete otvoriti pokretanjem setup.exe sa instalacijski disk SQL Server

Idemo na odjeljak usluga ( Održavanje) i odaberite stavku EditionUpgrade(Ažuriranje izdanja). Čarobnjak za nadogradnju izdanja će se pokrenuti.

Slijedeći upute čarobnjaka, ući ćemo u licencu SQL ključ Server u odgovarajuće polje.

Zatim morate odabrati koju kopiju (instancu) SQL Servera nadograditi.

Konačni izvještaj će naznačiti status nadogradnje verzije i vezu do detaljnog dnevnika teksta.

Možete provjeriti koje izdanje SQL Servera koristite SQL Server Management Studio desnim klikom na naziv instance. U našem primjeru ovo je SQL Server Enterprise.

Ista operacija može se izvesti iz komandna linija pokretanjem datoteke setup.exe s diska sa distribucijskim kompletom SQL Servera sa navedenim parametrima.

Setup.exe / Q / ACTION = nadogradnja izdanja / INSTANCENAME = / PID = xxxxx-xxxxx-xxxxx-xxxxx-xxxxx / IAcceptSQLServerLicenseTerms / Indicateprogress

Savjeti... Prilikom nadogradnje izdanja sa SQL Server Expressa morate dodatno omogućiti uslugu agenta SQL Server i koristiti upravitelj konfiguracije SQL Servera za postavljanje parametara usluge račun za uslugu agenta SQL Server.

Nadogradite na Enterprise Enterprise verziju SQL Servera (količinska licenca)

U slučaju da želite nadograditi svoju verziju SQL Servera putem programa Microsoft količinsko licenciranje, iznenadit ćete se da Microsoftov servisni centar za količinsko licenciranje (MS VLSC) nema ključeve za SQL Server.

Poanta je u tome da je ključ integriran izravno u distribucijski komplet. Najzanimljivije je to što VLSC podrška preporučuje deinstaliranje instaliranog SQL Servera i njegovu ponovnu instalaciju pomoću iso datoteke sa SQL distribucijom preuzetom iz VLSC -a.

Na sreću, još uvijek je moguće dobiti pravi ključ direktno iz distribucije.


Ažuriranje podataka u bazi podataka znači promjenu vrijednosti u postojećim zapisima tablice. U ovom slučaju moguće je promijeniti vrijednosti polja u grupi redova (čak i svih redova tablice), te urediti vrijednost polja u zasebnom retku.

U SQL -u možete promijeniti zapis u tablici baze podataka pomoću naredbe UPDATE. U svom minimalnom obliku, naredba za ažuriranje podataka izgleda ovako:

UPDATE SET tablično polje = vrijednost

Ovdje, UPDATE- naredba koja označava da je zahtjev ažuriranje podataka;

sto- naziv tabele u kojoj će se vršiti promene;

SET- naredba, nakon koje se označavaju polja sa dodijeljenim im vrijednostima, odvojeni zarezima;

polje- polje tabele u kojoj će biti izvršena promena;

značenje- nova vrijednost koja se unosi u polje.


Na primjer, ako trebate postaviti polje u svim redovima tablice na nulu, možete pokrenuti sljedeći upit:

UPDATE roba SET cijena = 0

U ovom slučaju polje cijene u apsolutno svim raspoloživim redovima tablice poprimit će vrijednost 0.

Promjena jedne vrijednosti

Promjena vrijednosti svih polja u tablici izuzetno je rijetka. Najčešće je potrebno promijeniti vrijednost određenog unosa. Da biste to učinili, na kraju retka s naredbom UPDATE bit će dodana direktiva WHERE koja specificira uvjet koji određuje s kojim redom treba izvršiti operaciju ažuriranja.

Postoji tabela:

Na primjer, morate ažurirati cijenu proizvoda sa poznatom vrijednošću. Da biste to učinili, pokrenite sljedeći upit:

UPDATE roba SET cijena = 150 GDJE je broj = 2

Sada, prije operacije promjene polja, bit će odabran red koji zadovoljava uvjet num = 2. Postoji samo jedan takav red u tablici. Na ovim zalihama cijena će se promijeniti na 150. Kao rezultat toga dobit ćemo tablicu s promijenjenom cijenom proizvoda.

Unošenje promjena u više redova s ​​uvjetom odabira

Ako se sjetite svih raznolikih uvjeta u upitu, možete zamisliti koliko uzorci mogu biti raznovrsni. Stoga se upiti za ažuriranje mogu izvesti ili s jednim redom, ili s grupom redova, ili sa svim redovima tablice. Sve ovisi o zadatku koji je pred vama, kao i o tome s kojim redovima tablice trebate izvesti operacije ažuriranja.

Na primjer, želimo prepoloviti cijenu sve robe koja sada košta 100 ili više. Upit:

UPDATE roba SET cijena = cijena / 2 GDJE je cijena> = 100

Stanje GDJE ovdje sadrži pravilo prema kojem će se birati samo proizvodi čija je cijena jednaka ili veća od 100, a na zahtjeve neće utjecati oni proizvodi sa cijenom nižom od 100.

cijena = cijena / 2- formula po kojoj će se izračunati nova cijena robe. Nova cijena bit će napisano jednako staroj cijeni podijeljeno sa dva.

Kao rezultat izvršavanja takvog upita, dobivamo tablicu sa promijenjenim zapisima:

Ažuriranje vrijednosti u više polja retka

Ako je potrebno ažurirati nekoliko polja odjednom, sva polja sa svojim vrijednostima označena su nakon direktive SET, odvojena zarezima. Na primjer, morate promijeniti naziv i cijenu proizvoda sa kodom 2 u "željezo", što košta 300:

UPDATE roba SET title = "(! LANG: željezo" , price = 300 WHERE num = 2 !}

Takav upit će dodijeliti vrijednost svakom odgovarajućem polju u redu. A uslov će pokazati u koji red će se izvršiti promjene.


Gore su navedene glavne vrste operacija ažuriranja. Na njihovoj osnovi se formiraju upiti za rješavanje većine zadataka promjene podataka u razvoju korištenjem SQL -a.

Podijelite ovo