• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

SQL UPDATE sau INSERT

0
  • Publicat de Cornescu Andrey
  • în Fără categorie
  • — 31 mart., 2010 at 12:20 pm

Am intampinat pana acuma de cateva ori nevoia de a verifica daca exista un rand in baza de date pentru al updata sau daca nu exista sa inseram un nou rand. Exista multe posibilitati prin care putem obtine efectul dorit, am sa va arat 2 variante in Microsoft Sql Server 2008.

Sql Metoda 1

 IF NOT EXISTS(SELECT 1 FROM configuration WHERE [key] = @key)
   INSERT INTO configuration([key], value) VALUES(@key, @value)
 ELSE
   UPDATE configuration SET value = @value WHERE [key] = @key

Pe langa comenzile de INSERT si DELETE putem vedea o a treia si anume SELECT’ul care verifica daca exista un rand cu cheia ‘@key’. Daca nu exista insereaza un nou rand in baza de date, iar daca exista updateaza acel rand. In cazul in care updatam  exista o mica problema care devine evidenta odata cu cresterea bazei de date, pentru a verifica daca acel rand exista serveru itereaza prin toate randurile bazei de date iar apoi face din nou iterarea pentru updatarea valorilor.

Sql Metoda 2

 UPDATE configuration SET value = @value WHERE [key] = @key
 IF @@ROWCOUNT = 0
   INSERT INTO configuration([key], value) VALUES(@key, @value)

Folosind aceasta metoda problema intampinata anterior este complet evitata, ‘variabila’ @@ROWCOUNT returneaza numarul de randuri returnate afectate de query’ul anterior, astfel daca acesta este 0 (nu s-a gasit nici un rand cu valoarea cheii ‘@key’) atunci va insera un nou rand. Personal recomand aceasta metoda deoarece este cea mai rapida.

Pentru cei care folositi MySQL alternativa @@ROWCOUNT ar fi functia found_rows();

Articol original area72.ro

Etichete: comparatie sqlinterogare insertinterogare updatemetode sqlmicrosoft sql serversqlTehnic

— Cornescu Andrey a scris 6 articole

Contact | office@area72.ro | @twitter Fondator Area72, numele meu este Cornescu Andrei si lucrez in domeniul informaticii de aproximativ 3 ani, pasionat de ceea ce fac si mai ales dornic sa invat› dar si sa impartasesc din cunostintele mele. De asemenea deschis la intrebari si provocari :)

  • Articolul anterior Parcurgerea unui RSS folosind C# si XPath
  • Articolul următor ONI 2010 – Olimpiada Nationala de Informatica

  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • august 2022
    L Ma Mi J V S D
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • SQL UPDATE sau INSERT
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons