Forum

SQL tablo Yedekleme
 
Bildirimler
Hepsini Temizle

SQL tablo Yedekleme

4 Yazılar
3 Üyeler
0 Reactions
8,199 Görüntüleme
(@UgurKARTAL)
Gönderiler: 32
Trusted Member
Konu başlatıcı
 

Merhaba

SQL Server 2008 üzerinde bir database içinde sadece bir adet tabloyu saatlik yedek almak istiyorum. Bunu yapmamdaki sebep kullandığımız bir ticari programın belirleyemediğimiz bir hatası yüzünden verilerimiz gün içerisinde sürekli silinmekte. 

Script olarak tablo yedeğini anlık alabiliyorum. Fakat bunu otomatiğe bağlayamadım. Job ekleyerek yapayım dedim ama kodlarla ilgili çok bilgim olmadığı için bunuda yapamadım. 

Bir kaç yerde şu uygulamayı gördüm. Tabloyu komple yeni isim vererek kopyalama Select into ile ama her seferinde aynı isim olacağı için bu kod ile job ayarlayamıyorum.

SELECT kopyalanacakAlanlar

INTO yeniTabloAdi IN veritabaniAdi

FROM kaynakTabloAdi;

bu kodu job içerisinse yazdım ama dediğim gibi her seferinde ikinci tablo ismi aynı olduğu için hata veriyor.

Bu sistemi nasıl yapabilirim yardımcı olabilir misiniz ?

 
Gönderildi : 26/09/2018 16:54

(@cankaya)
Gönderiler: 119
Üye
 

bir kere var olan tablonun şemasını zaten aşağıdaki komutla alabilmektesiniz.

SELECT kopyalanacakAlanlar

INTO yeniTabloAdi IN veritabaniAdi

FROM kaynakTabloAdi;

 

Aşağıdaki scripti de bir agent joba bağlayarak sürekli gelen insertleri alabilirsiniz. 

 

INSERT INTO yeniTabloAdi 

select * from veritabaniAdi where ID>(select MAX(Id) FROM yeniTabloAdi )

ID anatablonuzdan gelen Pkey alanınız yada auto increment alanınız olmalı.

 
Gönderildi : 26/09/2018 20:14

(@AhmetKoseoglu)
Gönderiler: 108
Estimable Member
 

Dikkat: Drop Table komutu komple tablolarınızı sileceği için geri dönüşü olmayan sonuçlara yol açabilir lütfen yeni tablo isminize göre drop table komutunu kullanın. 

 

işlemleriniz hızlı olsun istiyorsanız ve key alanları ile ilgili sorun yaşarım derseniz store prosedure oluşturun 1 adet. 

 

Sp içerisine şunları yazmalısınız. 

Sp ilk çalıştırdığınızda muhtemelen hata verecektir o yüzden  bu kodu önce çalıştırın   "select * into yeni_tablo from eski_tablo" sonra sp oluşturun. 

 

 

"drop table yeni_tablo

select * into yeni_tablo from eski_tablo"

 

 

job kısmında yapmanız gerekeni biliyorsunuz diye düşünüyorum ordaki sql sorgu kısmınada "exec sp_adi"  ni yazacaksınız. 

 

Eğer sp işleri kafanızı karıştırdıysa job kısmına direk şunu yazın.

 

"drop table yeni_tablo

select * into yeni_tablo from eski_tablo"

 
Gönderildi : 26/09/2018 21:02

(@UgurKARTAL)
Gönderiler: 32
Trusted Member
Konu başlatıcı
 

Öncelikle cevaplarınız için teşekkürler.

PK olan alanı baz almam lazım sorunumuz orada kaynaklanıyor. Programı yazan şirketle görüştüm tabloda revizyon yapacaklar bakalım. Çözüme ulaşamaz isem tekrar yardımlarınıza bağvuracağım.

 
Gönderildi : 27/09/2018 12:57

Paylaş: