SQL Server ve Azure SQL Veritabanı arasındaki T SQL farklılıkları

veritabanınızı SQL Server ' den Azure SQL Veritabanı geçirirken , SQL Server veritabanlarının geçirilebilmeleri için bazı yeniden mühendisler gerektirdiğini fark edebilirsiniz. Bu makalede, hem bu yeniden mühendisliğin gerçekleştirilmesi hem de yeniden mühendisliğin gerekli olduğu temel nedenlerini anlamak için size yardımcı olacak rehberlik sunulmaktadır. uyumsuzlukları tespit etmek ve veritabanlarını Azure SQL Veritabanı geçirmek için veri Geçiş Yardımcısı (DMA)kullanın.

Genel Bakış

uygulamaların kullandığı çoğu T-SQL özelliği hem Microsoft SQL Server hem de Azure SQL Veritabanı içinde tam olarak desteklenir. örneğin, veri türleri, işleçler, dize, aritmetik, mantıksal ve imleç işlevleri gibi çekirdek SQL bileşenleri SQL Server ve SQL Veritabanı aynı şekilde çalışır. ancak, DDL (veri tanımlama dili) ve DML (veri işleme dili) öğelerinde, t-SQL deyimlerinin ve yalnızca kısmen desteklenen (bu makalede daha sonra tartıştığımız) sorgular ile sonuçlanan birkaç t-SQL farkı vardır.

ayrıca, Azure SQL Veritabanı, tüm özellikleri ve sözdizimini sistem veritabanlarındaki ve işletim sisteminin bağımlılıklarından yalıtmak üzere tasarlandığından, bu nedenle desteklenmez. bu nedenle, çoğu örnek düzeyi özellik SQL Veritabanı desteklenmez. T-SQL deyimleri ve seçenekleri, örnek düzeyi seçeneklerini yapılandırır, işletim sistemi bileşenleri veya dosya sistemi yapılandırması belirtirseniz kullanılamaz. bu tür özellikler gerektiğinde, SQL Veritabanı veya başka bir Azure özelliğinden ya da hizmetinden başka bir şekilde, uygun bir alternatif vardır.

örneğin, yüksek kullanılabilirlik Azure SQL Veritabanı yerleşik olarak bulunur. kullanılabilirlik gruplarıyla ilgili T-SQL deyimleri SQL Veritabanı desteklenmez ve Always On kullanılabilirlik gruplarıyla ilişkili 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 ilgili makaleyi tamamlar ve T-SQL deyimlerine odaklanır.

kısmen farklılığı olan T-SQL sözdizimi deyimleri

Çekirdek DDL deyimleri mevcuttur, ancak diskte dosya yerleştirme gibi desteklenmeyen özelliklerle ilgili DDL deyimi uzantıları desteklenmez.

  • SQL Server, CREATE DATABASE ve ALTER DATABASE deyimlerinin üç düzine seçeneği vardır. Deyimler yalnızca SQL Server için uygulanan dosya yerleşimi, FıLESTREAM ve hizmet Aracısı seçeneklerini içerir. bu, geçirmeden önce SQL Veritabanı veritabanları oluşturduğunuzda, ancak veritabanlarını oluşturan T-SQL kodunu geçiriyorsanız, kullandığınız tüm seçeneklerin desteklendiğinden emin olmak için create database ( SQL Server T-SQL) konumundaki SQL Server söz dizimini kullanarak create database (Azure SQL Veritabanı) ' i karşılaştırmanız gerekir. CREATE DATABASEAzure SQL Veritabanı için, yalnızca SQL Veritabanı için uygulanan hizmet hedefi ve elastik havuz seçenekleri de vardır.
  • CREATE TABLEve ALTER TABLE deyimleri, FILETABLE FILESTREAM bu özellikler desteklenmediğinden SQL Veritabanı üzerinde kullanılamayan seçeneklere sahiptir.
  • CREATE LOGINve ALTER LOGIN deyimleri desteklenir, ancak SQL Server ' de kullanılabilir olan tüm seçenekleri sunmaz. veritabanınızı daha taşınabilir hale getirmek için SQL Veritabanı mümkün olan her durumda oturum açmak yerine içerilen veritabanı kullanıcılarını kullanmayı teşvik eder. Daha fazla bilgi için bkz. oturum açma ve değiştirme ve oturum açma ve Kullanıcı yönetme.

T-SQL sözdizimi Azure SQL Veritabanı desteklenmez

Azure SQL Veritabanı özellik karşılaştırmasınailişkin desteklenmeyen özelliklerle ilgili T-SQL deyimlerinin yanı sıra, 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ühendisleyin.

  • Sistem nesnelerinin harmanlaması.
  • Bağlantıyla ilgili: Endpoint deyimleri. SQL Veritabanı, Windows kimlik doğrulamasını desteklemez, ancak Azure Active Directory kimlik doğrulamasını destekler. Bu, Azure Active Directory federe Active Directory sorumlularının kimlik doğrulamasını içerir. daha fazla bilgi için bkz. Azure Active Directory kimlik doğrulaması kullanarak SQL Veritabanı veya azure azure Synapse Analytics 'e bağlanma.
  • Üç veya dört bölüm adı kullanarak veritabanları arası ve çapraz örnek sorgular. tempdbVeritabanına ve geçerli veritabanına başvuran üç bölüm adı desteklenir. Elastik sorgu , diğer MSSQL veritabanlarındaki tablolara yönelik salt okuma başvurularını 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 depolanabilir.
  • Olay: olay bildirimleri, sorgu bildirimleri.
  • dosya özellikleri: SQL Veritabanı tarafından otomatik olarak yönetilen veritabanı dosya adı, yerleştirme, boyut ve diğer dosya özellikleriyle ilgili sözdizimi.
  • yüksek kullanılabilirlik: SQL Veritabanı tarafından yönetilen, yüksek kullanılabilirlik ve veritabanı kurtarma ile ilgili sözdizimi. Bu, yedekleme, geri yükleme, her zaman açık, veritabanı yansıtma, günlük aktarma, kurtarma modelleri için sözdizimi içerir.
  • SQL Veritabanı ' de kullanılamayan anlık görüntü, işlem ve birleştirme çoğaltmasıyla ilgili sözdizimi. Ç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 benzeşimi, izleme bayrakları ile ilgili sözdizimi. Bunun yerine hizmet katmanlarını ve işlem boyutlarını kullanın.
  • KILL STATS JOB.
  • OPENQUERY, OPENDATASOURCE ve dört bölümden oluşan 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 , ve DENY sunucu düzeyi izinleri desteklenmez. Sunucu düzeyindeki bazı izinler veritabanı düzeyinde izinlerle değiştirilmiştir veya yerleşik sunucu rolleri tarafından örtük olarak verilir. Bazı sunucu düzeyi DMVs ve katalog görünümlerinde benzer veritabanı düzeyi görünümler vardır.
  • SET REMOTE_PROC_TRANSACTIONS
  • SHUTDOWN
  • sp_addmessage
  • sp_configure ve RECONFIGURE . Alter database KAPSAMSıZ yapılandırması desteklenir.
  • sp_helpuser
  • sp_migrate_user_to_contained
  • SQL Server aracı: SQL Server aracısına veya MSDB veritabanına dayalı sözdizimi: uyarılar, işleçler, merkezi yönetim sunucuları. Bunun yerine PowerShell gibi komut dosyası kullanın.
  • SQL Server denetim: bunun yerine SQL Veritabanı denetimi kullanın.
  • SQL Server izleme.
  • İzleme bayrakları.
  • T-SQL hata ayıklama.
  • Sunucu kapsamlı veya oturum açma Tetikleyicileri.
  • USE ifade: veritabanı bağlamını farklı bir veritabanına değiştirmek Için bu veritabanına yeni bir bağlantı oluşturmanız gerekir.

tam T-SQL başvurusu

t-SQL dilbilgisi, kullanım ve örnekler 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 ilişkili makaleleri içerir. Makale başlığının altında, bir simge çubuğu, MSSQL platformlarını listeleme ve uygulanabilirliği gösteren bir simge vardır. Örneğin kullanılabilirlik grupları SQL Server 2012'de tanıtılmıştır. kullanılabilirlik grubu oluştur makalesi, deyimin SQL Server için geçerli olduğunu gösterir (2012 ile başlayarak). bu ifade SQL Server 2008, SQL Server 2008 R2, Azure SQL Veritabanı, azure azure Synapse Analytics veya paralel veri ambarı için geçerlidir.

Bazı durumlarda, bir makalenin genel konusu bir üründe kullanılabilir, ancak ürünler arasında küçük farklılıklar vardır. Farklar, makaledeki orta noktalara uygun şekilde gösterilir. örneğin, CREATE TRIGGER makale SQL Veritabanı kullanılabilir. ancak ALL SERVER sunucu düzeyi tetikleyicilerinin seçeneği, SQL Veritabanı ' de sunucu düzeyi tetikleyicilerinin kullanılamayacağını belirtir. Bunun yerine veritabanı düzeyi 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ındaki uyumluluk sorunlarını algılamak ve veritabanlarınızı geçirmek için veri Geçiş Yardımcısı (DMA)kullanın.