İki database i karşılaştırma, trigger ve view ler gibi
İki database i karşılaştırma, trigger ve view ler gibi
Merhaba,
Mssql 2005 de aynı database'in farklı zamanlarda alınmış yedekleri mevcut. sirket2008 ekimde alınmış yedeği ile sirket2008 in aralıkta alınmış yedeklerini MSsql de geri döndüm. Bu iki database i trigger, sp, view ve table lar gibi karşılaştırmalarını ve farklarını nasıl bulabilirim.
x trigger ekim deki db de var ancak aralık daki db de yok gibi sonuçları bulmam gerekiyor.
iyi çalışmalar.
Mssql 2005 de aynı database'in farklı zamanlarda alınmış yedekleri mevcut. sirket2008 ekimde alınmış yedeği ile sirket2008 in aralıkta alınmış yedeklerini MSsql de geri döndüm. Bu iki database i trigger, sp, view ve table lar gibi karşılaştırmalarını ve farklarını nasıl bulabilirim.
x trigger ekim deki db de var ancak aralık daki db de yok gibi sonuçları bulmam gerekiyor.
iyi çalışmalar.
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Re: İki database i karşılaştırma, trigger ve view ler gibi
Merhaba,
http://www.clevercomponents.com/product ... mparer.asp
Bu programı ben Firebird db karşılaştırmaları için kullanıyorum. SQL Serverı da destekliyormuş ama hiç denemedim.
Kolay gelsin.
http://www.clevercomponents.com/product ... mparer.asp
Bu programı ben Firebird db karşılaştırmaları için kullanıyorum. SQL Serverı da destekliyormuş ama hiç denemedim.
Kolay gelsin.
Re: İki database i karşılaştırma, trigger ve view ler gibi
Merhaba,mussimsek yazdı:Merhaba,
http://www.clevercomponents.com/product ... mparer.asp
Bu programı ben Firebird db karşılaştırmaları için kullanıyorum. SQL Serverı da destekliyormuş ama hiç denemedim.
Kolay gelsin.
bu program karşılaştırma için işime yaradı. MSSQL 2005 desteği sadece karşılaştırma için mevcut.
Program IB ve FB için aynı zamanda eşitleme de yapabiliyormuş.
iyi çalışmalar.
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Re: İki database i karşılaştırma, trigger ve view ler gibi
işte size tam istediğinizi veriyorum fieldları ve yeni açılan tabları veriyor. Eğer isterseniz kolanlardaki uzunluk ya da tip değişkliğini vereninide yazmıştım
İstereniz onu da atabilirim.
--saha bazında eksiklerin tespiti
declare @myserver varchar(100)
declare @mydb varchar(100)
declare @surumserver varchar(100)
declare @surumdb varchar(100)
set @myserver='eski veritabanın olduğu server ismi'
set @mydb='eski veri tabanı'
set @surumserver='yeni veritabanın olduğu server ismi'
set @surumdb='Yeni veritabanı'
EXEC('Select b.name tablo, ''gercek'' db
from ['+@surumserver+'].['+@surumdb+'].[dbo].Sysobjects b
left join ['+@myserver+'].['+@mydb+'].[dbo].Sysobjects c on c.name =b.name
where b.xtype=''U'' and c.id is null AND b.name not like ''VS_%''
order by b.name
' )
exec('
Select ''alter table ''+b.name+'' add ''+a.name+'' ''+
case
when a.xtype=127 then ''bigint''
when a.xtype=106 then ''decimal(''+cast(a.prec as varchar(20))+'',''+cast(a.scale as varchar(20))+'')''
when a.xtype=231 or a.xtype=167 then ''nvarchar(''+cast(prec as varchar(10))+'')''
when a.xtype=104 then ''bit''
when a.xtype=56 then ''int''
when a.xtype=61 then ''datetime''
when a.xtype=189 then ''timestamp''
end
from ['+@surumserver+'].['+@surumdb+'].[dbo].Syscolumns as a
inner join ['+@surumserver+'].['+@surumdb+'].[dbo].Sysobjects b on a.id=b.id
left join
(select x.name tablo,y.name saha
from ['+@myserver+'].['+@mydb+'].[dbo].Syscolumns as y
inner join ['+@myserver+'].['+@mydb+'].[dbo].Sysobjects x on y.id=x.id)
as z on z.tablo=b.name and z.saha=a.name
where b.xtype=''U'' and z.tablo is null and b.name not like ''VS_%''
and b.name not in (Select b.name
from ['+@surumserver+'].['+@surumdb+'].[dbo].Sysobjects b
left join ['+@myserver+'].['+@mydb+'].[dbo].Sysobjects c on c.name =b.name
where b.xtype=''U'' and c.id is null)
order by b.name,a.name
')
İstereniz onu da atabilirim.
--saha bazında eksiklerin tespiti
declare @myserver varchar(100)
declare @mydb varchar(100)
declare @surumserver varchar(100)
declare @surumdb varchar(100)
set @myserver='eski veritabanın olduğu server ismi'
set @mydb='eski veri tabanı'
set @surumserver='yeni veritabanın olduğu server ismi'
set @surumdb='Yeni veritabanı'
EXEC('Select b.name tablo, ''gercek'' db
from ['+@surumserver+'].['+@surumdb+'].[dbo].Sysobjects b
left join ['+@myserver+'].['+@mydb+'].[dbo].Sysobjects c on c.name =b.name
where b.xtype=''U'' and c.id is null AND b.name not like ''VS_%''
order by b.name
' )
exec('
Select ''alter table ''+b.name+'' add ''+a.name+'' ''+
case
when a.xtype=127 then ''bigint''
when a.xtype=106 then ''decimal(''+cast(a.prec as varchar(20))+'',''+cast(a.scale as varchar(20))+'')''
when a.xtype=231 or a.xtype=167 then ''nvarchar(''+cast(prec as varchar(10))+'')''
when a.xtype=104 then ''bit''
when a.xtype=56 then ''int''
when a.xtype=61 then ''datetime''
when a.xtype=189 then ''timestamp''
end
from ['+@surumserver+'].['+@surumdb+'].[dbo].Syscolumns as a
inner join ['+@surumserver+'].['+@surumdb+'].[dbo].Sysobjects b on a.id=b.id
left join
(select x.name tablo,y.name saha
from ['+@myserver+'].['+@mydb+'].[dbo].Syscolumns as y
inner join ['+@myserver+'].['+@mydb+'].[dbo].Sysobjects x on y.id=x.id)
as z on z.tablo=b.name and z.saha=a.name
where b.xtype=''U'' and z.tablo is null and b.name not like ''VS_%''
and b.name not in (Select b.name
from ['+@surumserver+'].['+@surumdb+'].[dbo].Sysobjects b
left join ['+@myserver+'].['+@mydb+'].[dbo].Sysobjects c on c.name =b.name
where b.xtype=''U'' and c.id is null)
order by b.name,a.name
')
Re: İki database i karşılaştırma, trigger ve view ler gibi
sayın unal aygun paylaşım için teşekkürler...
sayenizde ihtiyacım olan bir konuya çözüm bulunmuş oldu
alan uzunlukları ve tip farklılıkları olan sorguyuda gönderirseniz daha da çok işime yarayacak. kolay gelsin
sayenizde ihtiyacım olan bir konuya çözüm bulunmuş oldu
alan uzunlukları ve tip farklılıkları olan sorguyuda gönderirseniz daha da çok işime yarayacak. kolay gelsin
Re: İki database i karşılaştırma, trigger ve view ler gibi
hocam işe yaradğına gerçekten çok sevindim. Hepimiz birbirimize yardım için varız. Nede olsa yanı işi yapıyoruz tecrübeler paylaşımlak iiçin var buradaki abilerimiz ablalarımız bize bunu öğretti.
Bu arada ben size Verilen Tabloya ait kolonları ve kolonları tip ve uzunluklarını veren sorguyu atıyorum siz bundan türetir kullanırsınız.
Tekrar kolay gelsin.
DECLARE @tablename varchar(100)
SET @tablename = N'myTable'
SELECT
clmns.name AS [Name],
usrt.name AS [DataType],
ISNULL(baset.name, N'') AS [SystemType],
CAST(CASE WHEN baset.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1 THEN
clmns.max_length/2 ELSE clmns.max_length END AS int) AS [Length],
CAST(clmns.precision AS int) AS [NumericPrecision]
FROM
sys.tables AS tbl
INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id
LEFT OUTER JOIN sys.types AS usrt ON usrt.user_type_id = clmns.user_type_id
LEFT OUTER JOIN sys.types AS baset ON baset.user_type_id = clmns.system_type_id and
baset.user_type_id = baset.system_type_id
WHERE
(tbl.name=@tablename and SCHEMA_NAME(tbl.schema_id)=N'dbo')
ORDER BY
clmns.column_id ASC
Bu arada ben size Verilen Tabloya ait kolonları ve kolonları tip ve uzunluklarını veren sorguyu atıyorum siz bundan türetir kullanırsınız.
Tekrar kolay gelsin.
DECLARE @tablename varchar(100)
SET @tablename = N'myTable'
SELECT
clmns.name AS [Name],
usrt.name AS [DataType],
ISNULL(baset.name, N'') AS [SystemType],
CAST(CASE WHEN baset.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1 THEN
clmns.max_length/2 ELSE clmns.max_length END AS int) AS [Length],
CAST(clmns.precision AS int) AS [NumericPrecision]
FROM
sys.tables AS tbl
INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id
LEFT OUTER JOIN sys.types AS usrt ON usrt.user_type_id = clmns.user_type_id
LEFT OUTER JOIN sys.types AS baset ON baset.user_type_id = clmns.system_type_id and
baset.user_type_id = baset.system_type_id
WHERE
(tbl.name=@tablename and SCHEMA_NAME(tbl.schema_id)=N'dbo')
ORDER BY
clmns.column_id ASC
derviş
Re: İki database i karşılaştırma, trigger ve view ler gibi
S.A. Kolay gelsin...
bir programım var datalarımı fb kullanan bir başka programdan manuel tek tek aktarıyorum. lakin bi yerden sonra karışıyor vt'm sql. bir karşılaştırma yapıp bir grid içinde henüz aktarılmamış dataları listelettirebilir miyim... yani fb ve sql deki datalara bakacak bir ortak alan ile sonra grid içinde fb'de olup sql'de olmayanları gösterecek. Şimdiden teşekkürler.
bir programım var datalarımı fb kullanan bir başka programdan manuel tek tek aktarıyorum. lakin bi yerden sonra karışıyor vt'm sql. bir karşılaştırma yapıp bir grid içinde henüz aktarılmamış dataları listelettirebilir miyim... yani fb ve sql deki datalara bakacak bir ortak alan ile sonra grid içinde fb'de olup sql'de olmayanları gösterecek. Şimdiden teşekkürler.
Re: İki database i karşılaştırma, trigger ve view ler gibi
satır ID si tutuyorsanız olabilir veya her satır için bir referans kodu v.s.
Bir kelimenin anlamını öğretsen bile yeter..
Re: İki database i karşılaştırma, trigger ve view ler gibi
Sorumu düzeltiyorum..
.......listelettirebilir miyim? bunu Nasıl yapabilirim...
tşk.
.......listelettirebilir miyim? bunu Nasıl yapabilirim...
tşk.