ilgili yazının güncel hali için lütfen
http://www.sadullahkeles.com/2007/04/02/sql-serverda-tablo-kopyalamak/
adresini ziyaret ediniz..
Sql Serverda herhangi bir veri tabanındaki bir tabloyu, başka bir veritabanına taşımak için
select * into vt1.dbo.yenitablo from vt2.dbo.kopyalanacaktablo
şeklinde bir komut kullanılabilir. Bu komut ile vt1 veritabanı altına yenitablo isimli bir tablo oluşturulur ve vt2 veritabanındaki kopyalanacaktablo isimli tablodaki veriler bu tabloya taşınır.
ustad bu sorguyu kullandıgımızda yeni tablo olusturuyor fakat olusturulan yeni tablo eski tablonun ozelliklerini tasımıyor. yani eski tabloda kolonun birisinde default value degeri kullanılmıssa yeni olusan tabloda aynı kolonda default value degeri olusmuyor. bu sorunun giderilmesi için baska bir sql sorgusu onerebilir misin…
ozaman önce tablonun scriptini alırsın(create table scriptini), sonra bu scripti yeni veritabanında çalıştırırsın böylece default değerlerinde gelmiş olur. ondan sonrada varsa bilgilerini kopyalarsın
Sql server management studio da Object explorer da Databases sekmesinde bulunan veri tabanları arasında drop&drag tablo taşınamıyor verdiğiniz sql sorgusu ile taşınmak istenen veri tabanı üzerinde New Query oluşturulup sorgu uygun isimlerle değiştirilirse gayet güzel çalışıyor…
ancak sorgu Execute edildikten sonra databasei refresh etmeyi unutmamk lazım..
Sorgu için teşekkürler…
[…] Kaynak: https://sadullahkeles.wordpress.com/2007/04/02/sql-serverda-tablo-kopyalamak/ […]
Hocam çok saol acaip işime yaradı.
işine yaramasına sevindim 🙂 ilk yorumda necatinin bahsettiği problemleri hesaba katmayı unutma
[…] alıntıdır […]
hocam eski tablodaki kayıtları var olan bir tabloya ekleyip eski tabloyı sıfırlamaya çalışıyorum ama yardımcı olabilir misiniz?
yukardaki gibi taşıyıp, truncate ile eski tablondaki tüm kayıtları silebilirsin.
ama bu kodla yeni tablo oluşturuyor. BEnim istediğimse var olan tabloya ekleme yapacak.Kopyalanacak tabloda veriler olacak ve onlarda değişme olmayacak şekilde bi kod lazım.
Ben hallettim ama uzun oldu varsa kısa kodu benim için daha iyi olur. Benim algoritma şöyle:(Delphi kullanıyorum bu arada)
1. tabloda birinci kayıta konumlandım.
2. verileri değişkenlere atadım .
3.onu ikinci tabloya ekledim.
4. birinci tabloda bi kayıt ilerlettim. 2>> ye döndüm.
5.bitince birinci tabloyu delete le temizledim
kodluk birşey yok burda satır satır işlem yapma
insert into hedeftablon(alanların) select alanların from kaynaktablon
şeklinde bir cümleyle tek seferde halledebilirsin.
evet böyle bir komut lazımdı ama akıl edemedim işte birde bunu update içinde kullanabilir miyiz ?
update hedeftablo(alanlar= değerleri) select alanlar
gibi tam olmadı gibi ama kod 🙂
Hocam örneğin isimleri farklı 2 database düşünün içerisindeki tablolar aynı hedefteki tabloda sütünlar açık select * into hedefdatabase.dbo.tabloadi from kaynakdatabase.dbo.tabloadi komutunu çalıştırdımda There is already an object named hatası alıyoum sanırım tablo orada olduğu için var olan tablodaki tüm verileri var olan diğerine koyalamak için nasıl bir yol izlemeleyiz?
merhaba bana acil lazım oldu ve bu yöntem aynı sunucuda işe yarıyor örneğin kendi bilgisayarımızda fakat uzak sunucudaki örneğin hostingdeki aynı isimli db nin aynı isimli tablosuna nasıl aktaracağız verileri?
veya db isimleri farklı da olabilir tablo isimleri de farklı olabilir?
bu konuda da bilgi verir misiniz? teşekkürler.