Ücretsiz araç

SQL Server’dan ER diyagramına

SQL Server Management Studio’dan alınmış bir T-SQL betiğini GO satırları, [dbo] köşeli parantezleri ve WITH CHECK kısıtlarıyla birlikte yapıştırın, ER diyagramını alın; betik birden çok şema kullanıyorsa her şema kendi çerçevesinde durur. Departmanlar, pozisyonlar ve bir yöneticiye bağlı çalışanlar içeren İK ve bordro örneğini deneyin.

Örnek çıktı

SQL Server örneğinden çizilmiş örnek diyagram
Bir örnek deneyinİK ve bordro

Nasıl çalışır

  1. T-SQL betiğinizi yapıştırın ya da bırakın

    SSMS’in Generate Scripts dosyası, Script Table as çıktısı, bir EF Core migration betiği ya da noktalı virgüllü veya noktalı virgülsüz, elle yazılmış CREATE TABLE deyimleri.

  2. Tabloları ve yabancı anahtarları görün

    ALTER TABLE ile eklenen her yabancı anahtar iki sütun arasında bir çizgi olur; tablolar dbo, hr ve başka şemalara dağılmışsa her şema kendi çerçevesini alır.

  3. Archboard’da açın

    Yeniden düzenlemek, not eklemek, bağlantı paylaşmak ya da SVG ve PNG olarak dışa aktarmak için yeni diyagram olarak kaydedin. Kayıt için Google ya da GitHub hesabı yeterli.

Veritabanı şemasını SSMS’te betiğe dökün

SQL Server Management Studio’da Object Explorer’dan veritabanına sağ tıklayın ve şunu seçin:

  1. Tabloları seçin, ardından Advanced altında Types of data to script ayarını Schema only olarak bırakın ve betiği bir .sql dosyasına kaydedin. Tek bir tablo için tabloya sağ tıklayıp Script Table as, ardından CREATE To’yu seçin.

    Tasks > Generate Scripts

Betikteki T-SQL sözdizimi

Bir T-SQL betiğindeki her yapıya ne olur:

[dbo].[Employees]
Okunur. Köşeli parantezli ve çift tırnaklı adlar büyük / küçük harf ayrımı yapılmadan eşleştirilir; varsayılan şema dbo kabul edilir.
GO
Bir satırda tek başına durduğunda toplu iş ayırıcısıdır; GO 2 gibi bir sayıyla yazıldığında da öyledir. Noktalı virgülü olmayan deyimler de ayrılır.
IDENTITY(1,1)
Gösterilmez: sütun int gibi türünü korur; başlangıç değeri ve artış miktarı kartta yer almaz.
WITH CHECK ADD CONSTRAINT
Okunur. SSMS’in tablolardan sonra WITH CHECK ya da WITH NOCHECK ile eklediği yabancı anahtarlar ilişki çizgileri olur.
ALTER TABLE … CHECK CONSTRAINT
Atlanır. Bu deyim yalnız zaten var olan bir kısıtı etkinleştirir; diyagrama bir şey eklemez.
ON [PRIMARY]
TEXTIMAGE_ON ve WITH (PAD_INDEX = OFF, …) gibi dizin seçenekleriyle birlikte atlanır.
NVARCHAR(MAX)
Uzunluğu ya da duyarlığı olan her tür gibi sütun türü olarak gösterilir.
IF NOT EXISTS … BEGIN … END
Kabuk soyulur. EF Core’un idempotent betiklerinin ve SSMS’in yazdığı varlık denetimlerinin içindeki CREATE TABLE, diğerleri gibi okunur.

T-SQL diyagramının dışında kalanlar

  • Saklı yordamlar, görünümler, fonksiyonlar ve tetikleyiciler. Her gövde bir sonraki GO’ya kadar atlanır ve sayılır; bir yordamın içinde oluşturulan tablo çizilmez.
  • #staging ve ##shared gibi geçici tablolar ile tablo değişkenleri. Yalnız bir oturum ya da toplu iş sürerken var olurlar; geçici tablolar dışarıda bırakılır ve sayılır, tablo değişkenleri ise sayılmadan atlanır.
  • sp_addextendedproperty ile eklenen MS_Description metinleri dahil genişletilmiş özellikler. Açıklamalar okunmaz.
  • Çalışan bir SQL Server ya da Azure SQL veritabanından gelen her şey. Bağlantı kurulmaz; satır sayıları, dizin kullanımı ve SSMS’te kaydedilmiş diyagramlar gösterilmez.

SQL Server soruları

Hangi SSMS betik seçenekleri en iyi sonucu verir?

Generate Scripts’in varsayılanları çalışır: tablolar CREATE TABLE olarak yazılır, yabancı anahtarlar da ardından ALTER TABLE … WITH CHECK ADD CONSTRAINT olarak gelir ve okunur. Check for object existence seçeneğini açmak her nesneyi bir IF NOT EXISTS denetimine sarar; bu da sorunsuz okunur. Veriyi de betiğe dökmek yalnız dosyayı büyütür, çünkü satırlar atlanır.

GO satırlarını silmem gerekir mi?

Hayır. GO, SSMS ve sqlcmd’de olduğu gibi toplu iş ayırıcısı olarak okunur; tekrar sayılı GO da öyle. GO ya da noktalı virgül içermeyen betikler de çalışır: her CREATE, ALTER ya da benzeri anahtar sözcükte yeni bir deyim başlar, ON DELETE SET NULL gibi ifadeler ise bölünmez.

dbo ve diğer şemalar nasıl gösterilir?

Betik birden çok şema kullanıyorsa tablo içeren her şema bir çerçeve olur; [hr].[Employees] dbo çerçevesinin yanındaki hr çerçevesinde durur, şemalar arası yabancı anahtarlar da çerçevelerin arasından geçer. Adlar, SQL Server’ın varsayılan harmanlamasında olduğu gibi büyük / küçük harf ayrımı yapılmadan eşleşir.

Azure SQL Database ile çalışır mı?

Evet. Azure SQL Database ve Azure SQL Managed Instance T-SQL kullanır; SSMS’te onlardan üretilen betikler aynı şekilde okunur, EF Core migration betikleri de öyle. SSMS’i Azure sunucusuna bağlayın ve Generate Scripts’i başka herhangi bir SQL Server’da olduğu gibi kullanın.

Bir betik yapıştırınca bir şey kaydediliyor mu?

Önizleme kaydedilmez. Archboard’da aç’ı seçtiğinizde çizilen diyagram, yani tablo kartları, sütun adları ve türleri, şema çerçeveleri ve çizgiler, çalışma alanınıza yeni bir diyagram olarak kaydedilir. SQL Server’da sonradan yapılan değişiklikler onu güncellemez.

SQL Server ER diyagramı aracı ücretsiz mi?

Evet. Betik yapıştırmak ve diyagramı görmek için hesap gerekmez. Diyagramı Archboard’da açmak için ücretsiz bir hesap yeterli.

Bir dakikada canvas açın

Google veya GitHub ile giriş yapın. Tek koltuk ücretsiz; ekip katılınca planı yükseltin.