Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sql server 2008 R2 veya Yukarısı için Database Kopyalaması Hk.
#1
İyi günler.

Sql da bulunan  data2019 adlı database i data2020 adıyla kopyalamak istiyorum. (Programda yıl sonu devri için)

Şu an bu işi Sql Management Databases copy wizard veya  management içinde script dosyası  oluşturarak 
bunun birkaç satırını değiştirerek  management içinde sqlquery ile içeri alıyorum.

Bunu delphi içinden  nasıl yapmalıyım
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
(30-08-2020, Saat: 15:06)cinarbil Adlı Kullanıcıdan Alıntı: İyi günler.

Sql da bulunan  data2019 adlı database i data2020 adıyla kopyalamak istiyorum. (Programda yıl sonu devri için)

Şu an bu işi Sql Management Databases copy wizard veya  management içinde script dosyası  oluşturarak 
bunun birkaç satırını değiştirerek  management içinde sqlquery ile içeri alıyorum.

Bunu delphi içinden  nasıl yapmalıyım

SELECT * INTO New_Table
FROM YourTable


mssql için şeklinde yapsanız uygun olur mu hocam? ben oracle için 

CREATE TABLE new_table

  AS (SELECT * FROM old_table);


şeklinde kullanıyorum.
Cevapla
#3
(31-08-2020, Saat: 02:09)mkemaleker Adlı Kullanıcıdan Alıntı:
(30-08-2020, Saat: 15:06)cinarbil Adlı Kullanıcıdan Alıntı: İyi günler.

Sql da bulunan  data2019 adlı database i data2020 adıyla kopyalamak istiyorum. (Programda yıl sonu devri için)

Şu an bu işi Sql Management Databases copy wizard veya  management içinde script dosyası  oluşturarak 
bunun birkaç satırını değiştirerek  management içinde sqlquery ile içeri alıyorum.

Bunu delphi içinden  nasıl yapmalıyım

SELECT * INTO New_Table
FROM YourTable


mssql için şeklinde yapsanız uygun olur mu hocam? ben oracle için 

CREATE TABLE new_table

  AS (SELECT * FROM old_table);


şeklinde kullanıyorum.

Cevap için teşekkür ederim. Bu şekilde yanlış bilmiyorsan sadece bir table yapılabilir.
Benim ihtiyacım komple database kopyalamak.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#4
Merhabalar,

bence delphi tarafında otomatik olarak 2 şekilde yapılabilir bu işlem hocam.
1- İlgili databaseyi detach edersin database boşa çıkar. filecopy ile bu databasenin bir kopyasını çıkarırsın istediğin isimle rename edersin. sonra bu iki veritabanını (orjinal ve yeni) tekrar attch edersin.
2- İlgili databasenin bir yedeğini alırsın. sonra bunu farklı bir database isminde tekrar yedeği restore edip yükleyebilirsin .
Bu iki metodun tüm işlemlerini delphi tarafında otomatik olarak rahatlıkla yapılabilir.
Veritabanını içeri aldıktan sonra scriplerle içeride istediğin dönem yıl değişikliklerinide yaparsın.
Sorsaydı Bilirdi Sormuyor ki Bilsin.
Bilseydi Sorardı Bilmiyor ki Sorsun. 
Cevapla
#5
(31-08-2020, Saat: 08:52)cinarbil Adlı Kullanıcıdan Alıntı:
(31-08-2020, Saat: 02:09)mkemaleker Adlı Kullanıcıdan Alıntı:
SELECT * INTO New_Table
FROM YourTable


mssql için şeklinde yapsanız uygun olur mu hocam? ben oracle için 

CREATE TABLE new_table

  AS (SELECT * FROM old_table);


şeklinde kullanıyorum.

Cevap için teşekkür ederim. Bu şekilde yanlış bilmiyorsan sadece bir table yapılabilir.
Benim ihtiyacım komple database kopyalamak.

"database" kısmını kaçırmışım. kusura bakmayın.
Cevapla
#6
Selam Arkadaşım
Öncelikle Program içinden database'ni (backup)yedeklemen ve farklı bir isimle (restore) geri çıkarman gerekli bunun için
1.aşama database bağlantındaki kullanıcının master'a ulaşım yetkisi olmalı (yani systemadmin)
2.aşama database kapatılıp mastera cekip connect olmalısın
zc.Connected := False;
zc.Database := 'master';
zc.Connected := True;
3.aşama dosyanın yedekleme adını oluşturmasın ve sol olarak parametre yollamalısın
nm := 'D:\xxx\geciciyedek\data2019.bak';
ydk.close;
ydk.ParamByName('vr').Value := nm;
ydk.ExecSQL;

ydk sql içindeki kod
BACKUP DATABASE [data2019] TO
DISK = :vr
WITH NOFORMAT, NOINIT, NAME = N'data2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10


4.aşama bu yedeklediğin database'yi farklı bir isimle restore edebilirsin
nm := 'D:\xxx\geciciyedek\data2019.bak';
grd.close;
grd.ParamByName('vr').Value :=nm;
grd.ExecSQL;

grd.sql içi kod
RESTORE DATABASE [data2020] FROM DISK = :vr WITH FILE = 1, NOUNLOAD, STATS = 10

bu aşamada database oluşmuş olur
bağlantını master dan alıp data2020 üzerine çekersin
zc.Connected := False;
zc.Database := 'data2020';
zc.Connected := True;
database yeni yıla kopyalanmış ve programın yeni databaseye bağlanmış olur.

iyi çalışmalar
Cevapla
#7
(14-09-2020, Saat: 10:57)coderheader Adlı Kullanıcıdan Alıntı: Selam Arkadaşım
Öncelikle Program içinden database'ni (backup)yedeklemen ve farklı bir isimle (restore) geri çıkarman gerekli bunun için
1.aşama database bağlantındaki kullanıcının master'a ulaşım yetkisi olmalı (yani systemadmin)
2.aşama database kapatılıp mastera cekip connect olmalısın
     zc.Connected := False;
     zc.Database := 'master';
     zc.Connected := True;
3.aşama dosyanın yedekleme adını oluşturmasın ve sol olarak parametre yollamalısın
     nm := 'D:\xxx\geciciyedek\data2019.bak';
     ydk.close;
     ydk.ParamByName('vr').Value := nm;
     ydk.ExecSQL;

    ydk sql içindeki kod
    BACKUP DATABASE [data2019] TO  
    DISK = :vr
    WITH NOFORMAT, NOINIT,  NAME = N'data2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10


4.aşama bu yedeklediğin database'yi farklı bir isimle restore edebilirsin
     nm := 'D:\xxx\geciciyedek\data2019.bak';
       grd.close;
       grd.ParamByName('vr').Value :=nm;
       grd.ExecSQL;

       grd.sql içi kod
       RESTORE DATABASE [data2020] FROM  DISK = :vr WITH  FILE = 1,  NOUNLOAD,  STATS = 10

bu aşamada database oluşmuş olur
bağlantını master dan alıp data2020 üzerine çekersin
     zc.Connected := False;
     zc.Database := 'data2020';
     zc.Connected := True;
database yeni yıla kopyalanmış ve programın yeni databaseye bağlanmış olur.

iyi çalışmalar

Lütfen forum kurallarına uyalım... UYARIDIR!
Delphi Can'dır!
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  MS SQL Server - Arama Yaklaşık Değerleri Bulma hi_selamlar 5 469 17-01-2024, Saat: 22:53
Son Yorum: Mr.X
  Sql Server Otomatik Kurulum narkotik 11 7.764 21-12-2023, Saat: 14:25
Son Yorum: Bay_Y
  MS SQL server tarih formatı değiştirme MEK 15 5.454 13-09-2022, Saat: 23:19
Son Yorum: MEK
  SQL 2014 ve Öncesi için JSON Parse konusunda yardım adelphiforumz 2 1.075 08-07-2022, Saat: 11:40
Son Yorum: hi_selamlar
  SQl Server Guruplama ve Toplama Bay_Y 6 3.680 25-02-2021, Saat: 10:39
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi