folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder SQL Server Da Bir Tablodan Diğerine Veri Setetme?



SQL Server Da Bir Tablodan Diğerine Veri Setetme?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sanane
    sanane's avatar
    Kayıt Tarihi: 24/Ağustos/2002
    Erkek

    Arkadaşlar elimde 2 tane tablo var. Bir tablodaki veriyi diğer tablodaki bağlantılı kolona nasıl set edebilirim.

    Şöyle açıklayayım

    Tablo1 deki bir tarihi tarihi Tablo2 deki 6 kolona set etmek istiyorum. Update komutunu kullanırken tabloları birbirine nasıl bağlayabilirim.

     

    Update Tablo1 set kolon1adi = veri, kolon2adi = veri, kolon3adi = veri

    where kıstaslar 

    burda tablo2 deki veriyi nasıl bağlamalıyım. 

    yardımlarınız için teşekkür ederim. 

     


    Naber la?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek
    Tam anlayamadım tek bir Update ile bir tablodayı veriyi öbür tabloyamı aktarmak istiyorsun yoksa ikisini eş zamanlı olarak mı update etmek?

    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sanane
    sanane's avatar
    Kayıt Tarihi: 24/Ağustos/2002
    Erkek
    Tek bir update ile bir tablodaki veriyi diğer tabloya set etmek istiyorum ve bu bir kayıt için değil yaklaşık 2500 satır kayıdı update etmeye çalışacam.

    Naber la?
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    Eger sadece MSSQL kullanıcaksan onun içersinde küçük programlar yazabilmen mümkün bir döngüyle çözersin işi....Sorgunuda şu şekilde yaparsan çalışır
    verilerin geliceklere yere yani kolon1=(selec kolon from tablo2 where=durum) şeklinde yaparsan çalışır....eger ortak bir key yoksa işin zor  


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sanane
    sanane's avatar
    Kayıt Tarihi: 24/Ağustos/2002
    Erkek
    sandman bunu yazdı:
    -----------------------------

    Eger sadece MSSQL kullanıcaksan onun içersinde küçük programlar yazabilmen mümkün bir döngüyle çözersin işi....Sorgunuda şu şekilde yaparsan çalışır
    verilerin geliceklere yere yani kolon1=(selec kolon from tablo2 where=durum) şeklinde yaparsan çalışır....eger ortak bir key yoksa işin zor


    -----------------------------

     

    Sandman bu verdiğin örnekle tek bir kaydı yapabilirim.ancak 2500 kayıt için nasıl bir kerede update edebilirim onu çözemedim. her kayıt için farklı veri set etmem gerekiyor.iki tabloda da hasta_id isimli kolon ortak key olarak.Bi türlü çıkamadım işin içinden.Bunu çözebilirsem 8 kişinin birkaç saatlik içini birkaç dakikada halletmiş olacağım. 


    Naber la?
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    abicim anlattım yukarda ama daha detaylı anlatimşimdi dostum senin durumun küçük bir loop ile çözülebilir eger birazcık programlama biliyorsan bunu küçük bir program ile yapabilirsin tek eklicegin bir for ve her satırı belirten "key" 
    için değişken...ama dersenki ben hiç programla ugraşmadan bunu nasıl yaparım diye.TSQL bize "While" ile loop şansı sunuyor küçük bir örnek verim

    declare @key int
    set @key = 0
    while @key < 10
    begin
    set @key = @key + 1
    SELECT * FROM tablo1 WHERE key="@key
    end
    Bu kod 1. satırdan 10. satıra kadar tüm kayıtları getiricek bize burda Select yerine kendi update komutunla degiştirirsen sorun kalmaz....iyi çalışmalar


    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    sandman açıklamış olayı fakat bende bir kaç bişi yazmak istyorum.ilerde böyle bir şeyi yapmak isteyenlere yararı dokunur inşallah

    öncelikle tabloduku veriyi bir değişkene atayacaksın,değişkendende diğer tabloya set edeceksin

    örnek verirsek

    declare @mytable table
    (urun_adi varchar(100),
    birim_fiyat money)

    use AdventureWorks
    insert into @mytable(urun_adi,birim_fiyat)
    select name,listprice from production.product

    use tahribat
    insert into TUrun(urun_adi,birim_fiyat,adet,kategori_id)
    select urun_adi,birim_fiyat,10,1 from @mytable

    bu şekilde adventureworks database'inden tahribat database'ine kayıt girdik :)

    sen bunu tablo için olanını yapacaksın 

    saygılar :)


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    İnce Memed
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek
    Isin ozu T-SQL ogreneceksin hoca :D

    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Musket
    Musket's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 09/Haziran/2002
    Erkek

    Doğrusu adaptöründen veri çekerken ortak kullanmak :|

    Yoksa öyle donguyle falan çıkılmaz işin içinden. 

    Yani SQLCommand i değiştir. 

     

    Tek bir tabloda hasta_ID kullan,

    Diğer tablo nun ID si olmasın. 

     

    Hatta ve hatta,

    .net platformunda çalışıyorsan visual olarak da ayarlayabiliyorsun.

    Böylece karışık SQL cümle - cümlecikleri ile muhattap (nerdeyse) olmuyorsun :) 

Toplam Hit: 4148 Toplam Mesaj: 9