Generate SQL Script'in kodlarını elde etmek.

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
Kullanıcı avatarı
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.

Mesaj gönderen sabanakman »

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. - .
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Soru nerede? :) Ben okudum ama sanırım sorununuzu tam açıklayamadınız veya ben anlayamadım :(

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

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.
sabanakman yazdı:İhtiyacım olan ise böyle bir çalışması, bilgisi veya önerisi olanlar. .
Bir gün bunları toparlayıp bir makale yazmam farz oldu.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

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
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Aslında bir başka maksadım da buydu.

Kod: Tümünü seç

exec sp_MShelpcolumns N'tablo'
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)

Kod: Tümünü seç

select * from systypes
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.

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 ,
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.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Mesaj gönderen Karamizrak »

Selamlar Saygılar.
Sanırım aynı sorundan dolayı bende sıkıntı içindeyim. Generate sql script ile alınan kodlar delphi içinden nasıl gonderilir veya enterprise ile olusturulan script nasıl cagırılıp database nasıl o script vasıtası ile tablolar olusturulur.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bu başlığı takip etmeni tavsiye ederim. Büyük bir aksilik olmazsa ortalama 1 ay içinde bir makale hazırlayıp burayada hazırladığımı belirten bir cevap yazmayı düşünüyorum.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla