SQL Server ile Azure SQL Veritabanı arasındaki T-SQL farkları

Veritabanınızı SQL Server'dan Azure SQL Veritabanı geçirirken, SQL Server veritabanlarınızın geçirilmeden önce yeniden mühendislik gerektirdiğini fark edebilirsiniz. Bu makale, hem bu yeniden mühendisliği gerçekleştirmenize hem de yeniden mühendisliğin gerekli olmasının temel nedenlerini anlamanıza yardımcı olacak rehberlik sağlar. Uyumsuzlukları algılamak ve veritabanlarını Azure SQL Veritabanı geçirmek için Data Migration Yardımcısı (DMA) kullanın.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Genel bakış

Uygulamaların kullandığı T-SQL özelliklerinin çoğu hem Microsoft SQL Server hem de Azure SQL Veritabanı tam olarak desteklenir. Örneğin, veri türleri, işleçler, dize, aritmetik, mantıksal ve imleç işlevleri gibi temel SQL bileşenleri SQL Server ve SQL Veritabanı aynı şekilde çalışır. Ancak, DDL (veri tanım dili) ve DML (veri işleme dili) öğelerinde yalnızca kısmen desteklenen T-SQL deyimleri ve sorgularıyla sonuçlanan birkaç T-SQL farkı vardır (bu makalenin ilerleyen bölümlerinde ele alacağız).

Ayrıca, Azure SQL Veritabanı özellikleri sistem veritabanları ve işletim sistemi bağımlılıklarından yalıtmak için tasarlandığından, hiç desteklenmeyen bazı özellikler ve söz dizimi vardır. Bu nedenle, örnek düzeyindeki özelliklerin çoğu SQL Veritabanı desteklenmez. Örnek düzeyi seçenekleri, işletim sistemi bileşenlerini yapılandırırlarsa veya dosya sistemi yapılandırmasını belirtirlerse T-SQL deyimleri ve seçenekleri kullanılamaz. Bu tür özellikler gerektiğinde, uygun bir alternatif genellikle SQL Veritabanı veya başka bir Azure özelliğinden veya hizmetinden başka bir şekilde kullanılabilir.

Örneğin, yüksek kullanılabilirlik Azure SQL Veritabanı yerleşiktir. Kullanılabilirlik gruplarıyla ilgili T-SQL deyimleri SQL Veritabanı tarafından desteklenmez ve Always On Kullanılabilirlik Grupları ile ilgili dinamik yönetim görünümleri de desteklenmez.

SQL Veritabanı tarafından desteklenen ve desteklenmeyen özelliklerin listesi için bkz. Azure SQL Veritabanı özellik karşılaştırması. Bu sayfa bu makaleyi tamamlar ve T-SQL deyimlerine odaklanır.

Kısmi farklılıkları olan T-SQL söz dizimi deyimleri

Temel DDL deyimleri kullanılabilir, ancak diskte dosya yerleştirme gibi desteklenmeyen özelliklerle ilgili DDL deyimi uzantıları desteklenmez.

  • SQL Server'da CREATE DATABASE ve ALTER DATABASE deyimleri üç düzineden fazla seçeneğe sahiptir. Deyimler yalnızca SQL Server için geçerli olan dosya yerleştirme, FILESTREAM ve hizmet aracısı seçeneklerini içerir. Geçirmeden önce SQL Veritabanı'de veritabanları oluşturmanız fark etmeyebilir, ancak veritabanları oluşturan T-SQL kodunu geçiriyorsanız create DATABASE (Azure SQL Veritabanı) öğesini CREATE DATABASE (SQL Server T-SQL) içindeki SQL Server söz dizimi ile karşılaştırarak kullandığınız tüm seçeneklerin desteklenmesi gerekir. CREATE DATABASEAzure SQL Veritabanı için yalnızca SQL Veritabanı için geçerli olan hizmet hedefi ve elastik havuz seçenekleri de vardır.
  • CREATE TABLE ve ALTER TABLE deyimleri, bu özellikler desteklenmediğinden SQL Veritabanı üzerinde kullanılamayabilecek ve FILESTREAM seçeneklerine sahiptirFILETABLE.
  • CREATE LOGIN ve ALTER LOGIN deyimleri desteklenir, ancak SQL Server'da kullanılabilen tüm seçenekleri sunmaz. Veritabanınızı daha taşınabilir hale getirmek için SQL Veritabanı mümkün olduğunda oturum açma bilgileri yerine bağımsız veritabanı kullanıcılarının kullanılmasını önerir. Daha fazla bilgi için bkz . CREATE LOGIN ve ALTER LOGIN ve Manage logins and users.

T-SQL söz dizimi Azure SQL Veritabanı'de desteklenmiyor

Azure SQL Veritabanı özellik karşılaştırmasında açıklanan desteklenmeyen özelliklerle ilgili T-SQL deyimlerine ek olarak, aşağıdaki deyimler ve deyim grupları desteklenmez. Bu nedenle, geçirilecek veritabanınız aşağıdaki özelliklerden herhangi birini kullanıyorsa, bu T-SQL özelliklerini ve deyimlerini ortadan kaldırmak için uygulamanızı yeniden mühendislikleyin.

  • Sistem nesnelerinin harmanlanması.
  • Bağlan ion ile ilgili: Uç nokta deyimleri. SQL Veritabanı Windows kimlik doğrulamayı desteklemez, ancak Microsoft Entra kimlik doğrulamayı destekler. Bu, Microsoft Entra Id (eski adıyla Azure Active Directory) ile birleştirilmiş Active Directory sorumlularının kimlik doğrulamalarını içerir. Daha fazla bilgi için bkz. Microsoft Entra kimlik doğrulamasını kullanarak SQL Veritabanı veya Azure Azure Synapse Analytics'e Bağlan.
  • Üç veya dört bölüm adı kullanan çapraz veritabanları ve örnekler arası sorgular. Veritabanına ve geçerli veritabanına başvuran tempdb üç bölüm adı desteklenir. Elastik sorgu , diğer MSSQL veritabanlarındaki tablolara salt okunur başvuruları destekler.
  • Veritabanları arası sahiplik zinciri ve TRUSTWORTHY veritabanı özelliği.
  • EXECUTE AS LOGIN. Bunun yerine EXECUTE AS USER kullanın.
  • Şifreleme anahtarları için genişletilebilir anahtar yönetimi (EKM). Saydam Veri Şifrelemesi (TDE) müşteri tarafından yönetilen anahtarlar ve Always Encrypted sütun ana anahtarları Azure Key Vault'ta depolanabilir.
  • Olay: olay bildirimleri, sorgu bildirimleri.
  • Dosya özellikleri: Veritabanı dosya adı, yerleşimi, boyutu ve SQL Veritabanı tarafından otomatik olarak yönetilen diğer dosya özellikleriyle ilgili söz dizimi.
  • Yüksek kullanılabilirlik: SQL Veritabanı tarafından yönetilen yüksek kullanılabilirlik ve veritabanı kurtarma ile ilgili söz dizimi. Yedekleme, geri yükleme, Always On, veritabanı yansıtma, günlük gönderimi, kurtarma modelleri için söz dizimi buna dahildir.
  • SQL Veritabanı'da kullanılamayan anlık görüntü, işlem ve birleştirme çoğaltması ile ilgili söz dizimi. Çoğaltma abonelikleri desteklenir.
  • İşlevler: fn_get_sql, fn_virtualfilestats, fn_virtualservernodes.
  • Örnek yapılandırması: Sunucu belleği, çalışan iş parçacıkları, CPU benzenşimi, izleme bayrakları ile ilgili söz dizimi. Bunun yerine hizmet katmanlarını ve işlem boyutlarını kullanın.
  • KILL STATS JOB.
  • OPENQUERY, OPENDATASOURCEve dört bölümlü adlar.
  • .NET Framework: CLR tümleştirmesi
  • Anlamsal arama
  • Sunucu kimlik bilgileri: Bunun yerine veritabanı kapsamlı kimlik bilgilerini kullanın.
  • Sunucu düzeyi izinleri: GRANT, REVOKEve DENY sunucu düzeyi izinleri desteklenmez. Bazı sunucu düzeyindeki izinler veritabanı düzeyinde izinlerle değiştirilir veya yerleşik sunucu rolleri tarafından örtük olarak verilir. Bazı sunucu düzeyindeki DMV'ler ve katalog görünümleri benzer veritabanı düzeyinde görünümlere sahiptir.
  • SET REMOTE_PROC_TRANSACTIONS
  • SHUTDOWN
  • sp_addmessage
  • sp_configure ve RECONFIGURE. ALTER DATABASE SCOPED CONFIGURATION desteklenir.
  • sp_helpuser
  • sp_migrate_user_to_contained
  • SQL Server Aracısı: SQL Server Aracısını veya msdb veritabanını kullanan söz dizimi: uyarılar, işleçler, merkezi yönetim sunucuları. Bunun yerine PowerShell gibi betikleri kullanın.
  • SQL Server denetimi: Bunun yerine SQL Veritabanı denetimi kullanın.
  • SQL Server izlemesi.
  • İzleme bayrakları.
  • T-SQL hata ayıklama.
  • Sunucu kapsamlı veya oturum açma tetikleyicileri.
  • USE deyimi: Veritabanı bağlamı farklı bir veritabanıyla değiştirmek için bu veritabanına yeni bir bağlantı oluşturmanız gerekir.

Tam T-SQL başvurusu

T-SQL dil bilgisi, kullanımı ve örnekleri hakkında daha fazla bilgi için bkz . T-SQL Başvurusu (Veritabanı Altyapısı).

"Uygulandığı öğe" etiketleri hakkında

T-SQL başvurusu, tüm son SQL Server sürümleriyle ilgili makaleleri içerir. Makale başlığının altında MSSQL platformlarını listeleyen ve uygulanabilirliği gösteren bir simge çubuğu bulunur. Örneğin kullanılabilirlik grupları SQL Server 2012'de tanıtılmıştır. CREATE AVAILABILITY GROUP makalesi, deyimin SQL Server (2012'den başlayarak) için geçerli olduğunu gösterir. Deyimi SQL Server 2008, SQL Server 2008 R2, Azure SQL Veritabanı, Azure Azure Synapse Analytics veya Paralel Veri Ambarı için geçerli değildir.

Bazı durumlarda, bir makalenin genel konusu bir üründe kullanılabilir, ancak ürünler arasında küçük farklılıklar vardır. Farklılıklar makaledeki orta noktalarda uygun şekilde belirtilir. Örneğin, CREATE TRIGGER makale SQL Veritabanı'de kullanılabilir. ALL SERVER Ancak sunucu düzeyinde tetikleyiciler seçeneği, sunucu düzeyinde tetikleyicilerin SQL Veritabanı kullanılamadığını gösterir. Bunun yerine veritabanı düzeyinde tetikleyicileri kullanın.

Sonraki adımlar

SQL Veritabanı tarafından desteklenen ve desteklenmeyen özelliklerin listesi için bkz. Azure SQL Veritabanı özellik karşılaştırması.

Azure SQL Veritabanı geçirmeden önce SQL Server veritabanlarınızdaki uyumluluk sorunlarını algılamak ve veritabanlarınızı geçirmek için Data Migration Yardımcısı (DMA) kullanın.