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
veALTER 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 DATABASE
Azure 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
veALTER TABLE
deyimleri, bu özellikler desteklenmediğinden SQL Veritabanı üzerinde kullanılamayabilecek veFILESTREAM
seçeneklerine sahiptirFILETABLE
.CREATE LOGIN
veALTER 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ğlantıyla 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ğlanma.
- Üç 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 yerineEXECUTE 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
,OPENDATASOURCE
ve 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
,REVOKE
veDENY
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
veRECONFIGURE
. 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.