SQL Server Da Bir Tablodan Diğerine Veri Setetme?
-
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.
-
Tam anlayamadım tek bir Update ile bir tablodayı veriyi öbür tabloyamı aktarmak istiyorsun yoksa ikisini eş zamanlı olarak mı update etmek?
-
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.
-
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 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.
-
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 verimdeclare @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 -
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 @mytablebu şekilde adventureworks database'inden tahribat database'ine kayıt girdik :)
sen bunu tablo için olanını yapacaksın
saygılar :)
-
Isin ozu T-SQL ogreneceksin hoca :D
-
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 :)