2014-07-24

Upgrade Sırasında CheckDB için Data_Purity Gerekli mi?

SQL Server 2000 yada öncesindeki sürümlerde oluşturulan veritabanlarında tablodaki alanların değer bütünlüğü kontrolü otomatik yapılmıyordu.
Bu yüzden SQL Server 2000 yada önceki sürümlerde oluşturduğunuz bir veritabanını upgrade ederken CHECKDB işlemini WITH DATA_PURITY ile yapmalısınız ve çıkan uyumsuzlukları manuel olarak gidermek zorundasınız. Burada önemli olan ilgili veritabanınızın SQL Server 2000 sonrası bir sürümde çalışıyor olması değil ilk oluşturulduğu versiyon önemli.

SQL Server'ı upgrade ederken CHECKDB işlemini WITH DATA_PURITY parametresi ile çalıştırılması gereken veritabanların listesini aşağıdaki T-SQL kod ile bulabilirsiniz.


dbcc traceon (3604);;;
go

create table #dbcc (
parentobject varchar(255),
[object] varchar(255),
field varchar(255),
[value] varchar(255)
)
create table #dbcc2 (
databasename varchar(255),
parentobject varchar(255),
[object] varchar(255),
field varchar(255),
[value] varchar(255)
)
exec master.dbo.sp_msforeachdb

'use [?] insert into #dbcc execute (''dbcc dbinfo with tableresults'');
insert into #dbcc2 select ''[?]'', * from #dbcc;
delete from #dbcc'
select *
from #dbcc2
where field = 'dbi_dbccflags' and
value = 0 and
databasename not in ('[master]','[model]')
drop table #dbcc
drop table #dbcc2
go

Hiç yorum yok:

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.