Generate SQL Script'in kodlarını elde etmek.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Generate SQL Script'in kodlarını elde etmek.
Merhaba; herkes bilir, bir tablonun oluşabilmesi için SQL kodları yeterlidir. Enterprise Manager'da bir tablo üzerindeyken sağ tıklayıp Tüm Görevleri seçtikten sonra Generate SQL Script penceresinde Preview butonuna tıklayınca tablonun oluşumu ve varsa Trigger'ı ile gerekli komutlar ekranda beliriyor. Hatta bir zamanlar InstallShield'ın 160 MB'lık bir trial versiyonunu incelemiştim ve orada SQL Server veri tabanını tamamen script oluşturarak kurabiliyordu. Bu script içinde Tablo oluşturmadan tutun da, tetikleyiciler (triggers), prosedüreler, fonksiyonlar ve hatta kayıtları bile script halinde oluşturuyordu. Bunun gibi çalışan vb.net te yazılmış kaynak kodlu bir program bile buldum. http://rapidshare.com/files/2620829/Gen ... Script.rar Çok zamanımı alacak bir iş olduğu için yoğun olduğum şu dönemde zamana ihtiyacım olduğu için inceleyerek çıkaramayacağım (SQL Server ile gelen SQL Profiler aracı ise bir programın SQL Server'a gönderdiği tüm komutları ekranda gösteriyor.). İhtiyacım olan ise böyle bir çalışması, bilgisi veya önerisi olanlar. Tabi olmazsa da eğer büyük bir engel çıkmazsa ileride bu işi çözdüğümde, buraya yazacağım. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Selamlar,
Soru nerede?
Ben okudum ama sanırım sorununuzu tam açıklayamadınız veya ben anlayamadım
Kolay Gelsin
Soru nerede?


Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Bir SQL Server DataBase'i SQL kodu olarak nasıl elde edilir? Veri tabanında bulunan tabloların, prosedürlerin,tetikleyicilerin, indekslerin, ilişkilendirmelerin hatta kayıtların bile SQL olarak oluşturulmasını sağlıyacak kodları elde etmek. Gerçi elime geçenlerle bunların bir çoğuna cevap buldum sadece benzer çalışmadan (zahmetten) geçmiş birisinden yol tarifi istemiştim.
Bir gün bunları toparlayıp bir makale yazmam farz oldu.sabanakman yazdı:İhtiyacım olan ise böyle bir çalışması, bilgisi veya önerisi olanlar. .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Selam,
Ben iki database'i birbiri ile karşılaştıran basit bir araç yazmıştım M$-SQL Server 2000 için.
Bakayım onun source'larını filan bulursam gönderirim, ancak çok detayı var, bir tablonun Create'i bile bir sürü sorun içeriyor.
Kolay Gelsin
Ben iki database'i birbiri ile karşılaştıran basit bir araç yazmıştım M$-SQL Server 2000 için.
Bakayım onun source'larını filan bulursam gönderirim, ancak çok detayı var, bir tablonun Create'i bile bir sürü sorun içeriyor.
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Aslında bir başka maksadım da buydu. kodu ile bir tablonun alanlarını bütün özellikleriyle karşımda olduğu gibi görebiliyorum (tipi, uzunluğu, varsa identity özelliği gibi) tablosu da bana sistemde bulunan veri tipleri ile ilgili tüm bilgileri veriyor. Bu iki tablo kullanılarak bir SQL kodu oluşturulabilir. systypes tablosunda bulunan length alanı 8000 olanlar char, nchar, varchar, nvarchar vs. gibi uzunluğu değişen alanlar için kullanılmış. Burada 8000 olmayan alanlar için SQL oluşturuken uzunluk verilmeden alan SQL Script'i oluşturulur. gibi. syscomments tablosu da sistemde ki trigger ve prosedürlerin listesini ve kodlarını da barındırıyor. Geriye indeksler ve ilişkilendirmeler sorunum kaldı. Bunları da çözersem işlem tamamdır. SQL koduyla kayıtları insert into.. yapısında oluşturma da pek bir mesele göremiyorum. Gerçi image alanı için bu çalışmaz ama aksak veya topal birşeyler yapacağız artık.
Kod: Tümünü seç
exec sp_MShelpcolumns N'tablo'
Kod: Tümünü seç
select * from systypes
Kod: Tümünü seç
CREATE TABLE [dbo].[Tumalanlar] ([bigint] [bigint] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[binary] [binary] (50) NULL ,
[bit] [bit] NULL ,
[char] [char] (10) COLLATE Turkish_CS_AS NULL ,
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 39
- Kayıt: 18 Oca 2005 05:41
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)