Verschillen in Transact-SQL oplossen tijdens de migratie naar SQL DatabaseResolving Transact-SQL differences during migration to SQL Database

Wanneer u uw data base migreert van SQL Server naar Azure SQL Server, kunt u ontdekken dat uw data base enige herengineering vereist voordat de SQL Server kan worden gemigreerd.When migrating your database from SQL Server to Azure SQL Server, you may discover that your database requires some re-engineering before the SQL Server can be migrated. Dit artikel bevat richt lijnen om u te helpen bij het uitvoeren van deze rebouwer en inzicht te krijgen in de onderliggende redenen waarom de herengineering nood zakelijk is.This article provides guidance to assist you in both performing this re-engineering and understanding the underlying reasons why the re-engineering is necessary. Gebruik de Data Migration Assistant (DMA)om incompatibiliteiten te detecteren.To detect incompatibilities, use the Data Migration Assistant (DMA).

OverzichtOverview

De meeste Transact-SQL-functies die toepassingen gebruiken, worden volledig ondersteund in zowel Microsoft SQL Server als Azure SQL Database.Most Transact-SQL features that applications use are fully supported in both Microsoft SQL Server and Azure SQL Database. De belangrijkste SQL-onderdelen, zoals gegevens typen, Opera Tors, teken reeks, reken kundige, logische en cursor functies, werken bijvoorbeeld hetzelfde in SQL Server en SQL Database.For example, the core SQL components such as data types, operators, string, arithmetic, logical, and cursor functions, work identically in SQL Server and SQL Database. Er zijn echter enkele T-SQL-verschillen in DDL-elementen (Data Definition Language) en DML (Data Manipulation Language) die resulteren in T-SQL-instructies en query's die slechts gedeeltelijk worden ondersteund (wat verderop in dit artikel wordt besproken).There are, however, a few T-SQL differences in DDL (data-definition language) and DML (data manipulation language) elements resulting in T-SQL statements and queries that are only partially supported (which we discuss later in this article).

Bovendien zijn er enkele functies en syntaxis die niet wordt ondersteund omdat Azure SQL Database is ontworpen om functies te isoleren op basis van afhankelijkheden van de hoofd database en het besturings systeem.In addition, there are some features and syntax that is not supported at all because Azure SQL Database is designed to isolate features from dependencies on the master database and the operating system. Daarom zijn de meeste activiteiten op server niveau niet geschikt voor SQL Database.As such, most server-level activities are inappropriate for SQL Database. T-SQL-instructies en-opties zijn niet beschikbaar als ze opties op server niveau, onderdelen van het besturings systeem of de configuratie van het bestands systeem opgeven.T-SQL statements and options are not available if they configure server-level options, operating system components, or specify file system configuration. Wanneer dergelijke mogelijkheden vereist zijn, is een geschikt alternatief op een andere manier vaak beschikbaar vanaf SQL Database of vanuit een andere Azure-functie of-service.When such capabilities are required, an appropriate alternative is often available in some other way from SQL Database or from another Azure feature or service.

Zo is hoge Beschik baarheid ingebouwd in Azure SQL Database met behulp van technologie die vergelijkbaar is met AlwaysOn- beschikbaarheids groepen.For example, high availability is built into Azure SQL Database using technology similar to Always On Availability Groups. T-SQL-instructies die zijn gerelateerd aan beschikbaarheids groepen worden niet ondersteund door SQL Database en de dynamische beheer weergaven die betrekking hebben op AlwaysOn-beschikbaarheids groepen, worden ook niet ondersteund.T-SQL statements related to availability groups are not supported by SQL Database, and the dynamic management views related to Always On Availability Groups are also not supported.

Zie Azure SQL database functie vergelijkingvoor een lijst met de functies die worden ondersteund en niet worden ondersteund door SQL database.For a list of the features that are supported and unsupported by SQL Database, see Azure SQL Database feature comparison. De lijst op deze pagina vormt een aanvulling op het artikel richt lijnen en functies en richt zich op Transact-SQL-instructies.The list on this page supplements that guidelines and features article, and focuses on Transact-SQL statements.

Transact-SQL-syntaxis instructies met gedeeltelijke verschillenTransact-SQL syntax statements with partial differences

De belangrijkste DDL-instructies (Data Definition Language) zijn beschikbaar, maar sommige DDL-instructies hebben uitbrei dingen met betrekking tot de plaatsing van schijven en niet-ondersteunde functies.The core DDL (data definition language) statements are available, but some DDL statements have extensions related to disk placement and unsupported features.

  • CREATE and ALTER data base-instructies hebben meer dan drie dozijn opties.CREATE and ALTER DATABASE statements have over three dozen options. De instructies omvatten opties voor plaatsing, FILESTREAM en Service Broker die alleen van toepassing zijn op SQL Server.The statements include file placement, FILESTREAM, and service broker options that only apply to SQL Server. Dit is mogelijk niet van belang als u data bases maakt voordat u migreert, maar als u T-SQL-code migreert die data bases maakt, moet u Create Data Base (Azure SQL database) vergelijken met de SQL Server-syntaxis bij Create data base (SQL Server Transact-SQL) om ervoor te zorgen dat alle opties die u gebruikt, worden ondersteund.This may not matter if you create databases before you migrate, but if you are migrating T-SQL code that creates databases you should compare CREATE DATABASE (Azure SQL Database) with the SQL Server syntax at CREATE DATABASE (SQL Server Transact-SQL) to make sure all the options you use are supported. CREATE data base for Azure SQL Database heeft ook service doelstelling-en elastische schaal opties die alleen van toepassing zijn op SQL Database.CREATE DATABASE for Azure SQL Database also has service objective and elastic scale options that apply only to SQL Database.
  • De instructie CREATE en ALTER TABLE heeft bestands tabel opties die niet kunnen worden gebruikt op SQL Database omdat FILESTREAM niet wordt ondersteund.The CREATE and ALTER TABLE statements have FileTable options that cannot be used on SQL Database because FILESTREAM is not supported.
  • De instructies CREATE en ALTER login worden ondersteund, maar SQL Database biedt niet alle opties.CREATE and ALTER login statements are supported but SQL Database does not offer all the options. Om uw data base draagbaarer te maken, wordt SQL Database aanbevolen data base-gebruikers in plaats van aanmeldingen te gebruiken wanneer dat mogelijk is.To make your database more portable, SQL Database encourages using contained database users instead of logins whenever possible. Zie voor meer informatie aanmelden maken/wijzigen en toegang tot data bases beheren en verlenen.For more information, see CREATE/ALTER LOGIN and Controlling and granting database access.

Transact-SQL-syntaxis wordt niet ondersteund in Azure SQL DatabaseTransact-SQL syntax not supported in Azure SQL Database

Naast Transact-SQL-instructies die betrekking hebben op de niet-ondersteunde functies die worden beschreven in Azure SQL database functie vergelijking, worden de volgende instructies en groepen instructies niet ondersteund.In addition to Transact-SQL statements related to the unsupported features described in Azure SQL Database feature comparison, the following statements and groups of statements, are not supported. Als dat het geval is, moet u, als uw data base wordt gemigreerd, gebruikmaken van een van de volgende functies, uw T-SQL opnieuw bezorgen om deze T-SQL-functies en-instructies te elimineren.As such, if your database to be migrated is using any of the following features, re-engineer your T-SQL to eliminate these T-SQL features and statements.

  • Systeemobjecten sorterenCollation of system objects
  • Gerelateerde verbinding: endpoint-instructies.Connection related: Endpoint statements. SQL Database biedt geen ondersteuning voor Windows-verificatie, maar ondersteunt wel de vergelijkbare Azure Active Directory-verificatie.SQL Database does not support Windows authentication, but does support the similar Azure Active Directory authentication. Voor sommige verificatietypen is de nieuwste versie van SSMS vereist.Some authentication types require the latest version of SSMS. Zie Verbinding maken met SQL Database of SQL Data Warehouse met behulp van Azure Active Directory-verificatie voor meer informatie.For more information, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication.
  • Databaseoverschrijdende query’s met drie of vier onderdeelnamen.Cross database queries using three or four part names. (Alleen-lezen query’s die databaseoverschrijdend zijn worden ondersteund dankzij elastische databasequery’s.)(Read-only cross-database queries are supported by using elastic database query.)
  • Databaseoverschrijdend het eigendom koppelen, instelling TRUSTWORTHYCross database ownership chaining, TRUSTWORTHY setting
  • EXECUTE AS LOGIN Gebruik in plaats daarvan 'EXECUTE AS USER'.EXECUTE AS LOGIN Use 'EXECUTE AS USER' instead.
  • Versleuteling wordt ondersteund, behalve voor Extensible Key ManagementEncryption is supported except for extensible key management
  • Gebeurtenis: gebeurtenissen, gebeurtenis meldingen, query meldingenEventing: Events, event notifications, query notifications
  • File Placement: syntaxis met betrekking tot de plaatsing, grootte en database bestanden van het database bestand die automatisch door Microsoft Azure worden beheerd.File placement: Syntax related to database file placement, size, and database files that are automatically managed by Microsoft Azure.
  • Hoge Beschik baarheid: syntaxis met betrekking tot hoge Beschik baarheid, die wordt beheerd via uw Microsoft Azure-account.High availability: Syntax related to high availability, which is managed through your Microsoft Azure account. Dit omvat syntaxis voor back-ups, herstellen, Always On, databasespiegeling, de back-upfunctie voor logboekbestanden en herstelmodi.This includes syntax for backup, restore, Always On, database mirroring, log shipping, recovery modes.
  • Log Reader: syntaxis die afhankelijk is van de logboek lezer, die niet beschikbaar is op SQL Database: push-replicatie, Change Data Capture.Log reader: Syntax that relies upon the log reader, which is not available on SQL Database: Push Replication, Change Data Capture. SQL Database kan abonnee zijn op een artikel over push-replicatie.SQL Database can be a subscriber of a push replication article.
  • Functies: fn_get_sql, fn_virtualfilestats, fn_virtualservernodesFunctions: fn_get_sql, fn_virtualfilestats, fn_virtualservernodes
  • Hardware: syntaxis met betrekking tot hardware-gerelateerde server instellingen: zoals geheugen, worker-threads, CPU-affiniteit, tracerings vlaggen.Hardware: Syntax related to hardware-related server settings: such as memory, worker threads, CPU affinity, trace flags. Gebruik in plaats daarvan service lagen en reken grootten.Use service tiers and compute sizes instead.
  • KILL STATS JOB
  • OPENQUERY, OPENROWSET, OPENDATASOURCEen vier delen van namenOPENQUERY, OPENROWSET, OPENDATASOURCE, and four-part names
  • .NET Framework: CLR-integratie met SQL Server.NET Framework: CLR integration with SQL Server
  • Semantische zoekopdrachtenSemantic search
  • Server referenties: gebruik in plaats daarvan Data Base-bereik referenties .Server credentials: Use database scoped credentials instead.
  • Items op server niveau: Server functies, sys.login_token.Server-level items: Server roles, sys.login_token. GRANT, REVOKE, en DENY van de machtigingen op serverniveau zijn niet beschikbaar, hoewel enkele hiervan worden vervangen door machtigingen op databaseniveau.GRANT, REVOKE, and DENY of server level permissions are not available though some are replaced by database-level permissions. Sommige handige DMV’s op serverniveau hebben vergelijkbare DMV’s op databaseniveau.Some useful server-level DMVs have equivalent database-level DMVs.
  • SET REMOTE_PROC_TRANSACTIONS
  • SHUTDOWN
  • sp_addmessage
  • sp_configure-opties en RECONFIGURE.sp_configure options and RECONFIGURE. Sommige opties zijn beschikbaar met ALTER DATABASE SCOPED CONFIGURATION.Some options are available using ALTER DATABASE SCOPED CONFIGURATION.
  • sp_helpuser
  • sp_migrate_user_to_contained
  • SQL Server Agent: syntaxis die afhankelijk is van de SQL Server Agent of de MSDB-Data Base: waarschuwingen, Opera Tors, centrale beheerser vers.SQL Server Agent: Syntax that relies upon the SQL Server Agent or the MSDB database: alerts, operators, central management servers. Gebruik in plaats daarvan opties voor scripts, zoals Azure PowerShell.Use scripting, such as Azure PowerShell instead.
  • SQL Server controle: gebruik in plaats daarvan SQL Database controle.SQL Server audit: Use SQL Database auditing instead.
  • SQL Server-traceringSQL Server trace
  • Tracerings vlaggen: sommige items van de tracerings vlag zijn verplaatst naar de compatibiliteits modi.Trace flags: Some trace flag items have been moved to compatibility modes.
  • Transact-SQL-foutopsporingTransact-SQL debugging
  • Triggers: triggers binnen het serverbereik of aanmeldingstriggersTriggers: Server-scoped or logon triggers
  • USE-instructie: als u de databasecontext wilt wijzigen naar een andere database, moet u een nieuwe verbinding maken met de nieuwe database.USE statement: To change the database context to a different database, you must make a new connection to the new database.

Volledige naslaginformatie voor Transact-SQLFull Transact-SQL reference

Zie Transact-SQL Reference (data base-engine) in SQL Server Books Online voor meer informatie over de grammatica, het gebruik en de voor beelden van Transact-SQL.For more information about Transact-SQL grammar, usage, and examples, see Transact-SQL Reference (Database Engine) in SQL Server Books Online.

Over het label 'Van toepassing op'About the "Applies to" tags

De Transact-SQL-Naslag informatie bevat artikelen die betrekking hebben op SQL Server versies 2008 van de huidige versie.The Transact-SQL reference includes articles related to SQL Server versions 2008 to the present. Onder de titel van het artikel bevindt zich een pictogram balk met de vier SQL Server-platformen en wordt de toepasselijkheid aangegeven.Below the article title there is an icon bar, listing the four SQL Server platforms, and indicating applicability. Beschikbaarheidsgroepen zijn bijvoorbeeld geïntroduceerd in SQL Server 2012.For example, availability groups were introduced in SQL Server 2012. In het artikel beschikbaarheids groep maken wordt aangegeven dat de instructie van toepassing is op SQL Server (te beginnen met 2012) .The CREATE AVAILABILITY GROUP article indicates that the statement applies to SQL Server (starting with 2012). De instructie is niet van toepassing op SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, Azure SQL Data Warehouse en Parallel Data Warehouse.The statement does not apply to SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, Azure SQL Data Warehouse, or Parallel Data Warehouse.

In sommige gevallen kan het algemene onderwerp van een artikel in een product worden gebruikt, maar er zijn kleine verschillen tussen producten.In some cases, the general subject of an article can be used in a product, but there are minor differences between products. De verschillen worden als toepasselijk aangegeven op middel punt in het artikel.The differences are indicated at midpoints in the article as appropriate. In sommige gevallen kan het algemene onderwerp van een artikel in een product worden gebruikt, maar er zijn kleine verschillen tussen producten.In some cases, the general subject of an article can be used in a product, but there are minor differences between products. De verschillen worden als toepasselijk aangegeven op middel punt in het artikel.The differences are indicated at midpoints in the article as appropriate. Het artikel CREATE TRIGGER is bijvoorbeeld beschikbaar in SQL Database.For example the CREATE TRIGGER article is available in SQL Database. Maar de optie alle server voor triggers op server niveau geeft aan dat triggers op server niveau niet kunnen worden gebruikt in SQL database.But the ALL SERVER option for server-level triggers, indicates that server-level triggers cannot be used in SQL Database. Gebruik in plaats daarvan triggers op database niveau.Use database-level triggers instead.

Volgende stappenNext steps

Zie Azure SQL database functie vergelijkingvoor een lijst met de functies die worden ondersteund en niet worden ondersteund door SQL database.For a list of the features that are supported and unsupported by SQL Database, see Azure SQL Database feature comparison. De lijst op deze pagina vormt een aanvulling op het artikel richt lijnen en functies en richt zich op Transact-SQL-instructies.The list on this page supplements that guidelines and features article, and focuses on Transact-SQL statements.