Iki database arasindaki fark tespiti

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Iki database arasindaki fark tespiti

Mesaj gönderen Burhan_ast »

Arkadaslar merhaba,

Ms-Sql server kullaniyorum Elimde 2 tane degisik isimlerde veritabani var bunlar ornegin Data_1 ve Data_2 bu iki databasede bana ait degil yapmam gerek su bu databaseler icinde yuzlerce tablo var oncelikle bu databaseler icindeki tablolarin isimlerini tespit etmem lazim, daha sonrada bu tablolara ait alanlarini ve ozellikleri tipi, uzunlugu gibi tespit etmem lazim, ve bu bilgileri kullanarak iki veritabaninda farkli tablolar varmi ve mevcut tablolardaki veri alanlari ozellikleri farklimi ve en sonundada bu tablolarda ornegin XXX isimli tablodaki veriler ile diger databasedeki xxx isimli tablodaki verileri karsilastirip farkliliklari tespit etmem gerekiyor, :) Paradoxda iken bunu yapmistim ama ms-sql serverda nasil yapacagimi bilemiyorum, simdiden yardimlarinizdan dolayi tesekkur ederim,

saygilar

Burhan Cakmak
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

SQL Server'da bazı sistem tablolarından DB hakkında tüm bilgileri alabilirsin. Şimdi açamadığım için bakamıyorum ancak bir sistem tablosunda tüm alanlar ve tip bilgileri vardı. Zaten 15-20 tane, hepsinin içine açıp bir bak.

Kolay gelsin.
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Sys tablosu mevcut amam

Mesaj gönderen Burhan_ast »

Merhaba Mustafa bey,

Syscolumns isimli bir tablo mevcut ama o tabloda su problem var alanlarin hangi tabloya ait oldugu bir Id ile baglanmis ama O Id hangi tablo onu tespit edemedim

Burhan
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Database içindeki tabloların isimlerini alma:

Kod: Tümünü seç

SELECT DISTINCT  name,ID FROM sysobjects
WHERE ((xtype=''U'')OR(xtype=''V''))   and status>-1 and
name tablonun ismi, id o tabloya ait id numarası. Ben her iki alanı farklı bir listboxda tutuyorum. MEsela isimleri lb1 isimli listbox, idleri lb2 isimli listbozda tutarsak (combobox veya stringlist de olabilir!) lb1 den bir tablo seçildiğinde onun alanlarını almak için şunu kullanabilirsin:

Tablo içindeki alanları alma:

Kod: Tümünü seç

Query1.Add('SELECT NAME FROM SYSCOLUMNS WHERE ID='+lb2.items.Strings[lb1.itemindex]);
Kolay gelsin..
Cevapla