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

Wanneer migreren van uw database van SQL Server naar Azure SQL-Server, ontdekt u mogelijk dat uw database is vereist voor sommige herstructurering 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 richtlijnen om u te helpen u bij het uitvoeren van deze herstructurering zowel inzicht in de onderliggende redenen waarom de herstructurering nodig 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. Voor het detecteren van compatibiliteitsproblemen, gebruikt u de Data Migration Assistant (DMA).To detect incompatibilities, use the Data Migration Assistant (DMA).

OverzichtOverview

De meeste Transact-SQL-functies die gebruikmaken van toepassingen worden volledig ondersteund in zowel Microsoft SQL Server en Azure SQL Database.Most Transact-SQL features that applications use are fully supported in both Microsoft SQL Server and Azure SQL Database. Bijvoorbeeld, werken de belangrijkste SQL-onderdelen, zoals gegevenstypen, operators, string, rekenkundige, logische en functies van de cursor, identiek 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 (data definition language) en DML (gegevens manipuleren taal) elementen, wat resulteert in T-SQL-instructies en query's die worden slechts gedeeltelijk ondersteund (die wordt besproken hoe verderop in dit artikel).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 sommige functies en -syntaxis die niet wordt ondersteund op alle omdat Azure SQL Database is ontworpen om functies van afhankelijkheden in de hoofddatabase en het besturingssysteem te isoleren.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. De meeste op serverniveau activiteiten zijn daarom niet geschikt zijn voor SQL-Database.As such, most server-level activities are inappropriate for SQL Database. T-SQL-instructies en opties zijn niet beschikbaar als het niveau van de server opties, besturingssysteemonderdelen, configureren of de bestandssysteemconfiguratie.T-SQL statements and options are not available if they configure server-level options, operating system components, or specify file system configuration. Wanneer deze mogelijkheden vereist zijn, is vaak een geschikt alternatief beschikbaar zijn in een andere manier van SQL-Database of 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.

Bijvoorbeeld, hoge beschikbaarheid is ingebouwd in Azure SQL Database met behulp van technologie die vergelijkbaar is met Always On Availability Groups.For example, high availability is built into Azure SQL Database using technology similar to Always On Availability Groups. T-SQL-instructies met betrekking tot de beschikbaarheidsgroepen worden niet ondersteund door SQL Database en de dynamische beheerweergaven voor Always On Availability Groups 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 voor een lijst van de functies die worden ondersteund en wordt niet ondersteund door SQL Database, vergelijking van Azure 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 is een aanvulling op dat artikel richtlijnen en -functies, en is gericht op Transact-SQL-instructies.The list on this page supplements that guidelines and features article, and focuses on Transact-SQL statements.

Overzichten van de Transact-SQL-syntaxis met gedeeltelijke verschillenTransact-SQL syntax statements with partial differences

De core (data definition language met) DDL-instructies zijn beschikbaar, maar sommige DDL-componenten beschikken over uitbreidingen die betrekking hebben op de plaatsing van de schijf 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.

  • MAKEN en ALTER DATABASE instructies hebben meer dan drie dozijn opties.CREATE and ALTER DATABASE statements have over three dozen options. De instructies zijn plaatsing van bestanden, FILESTREAM en service broker-opties die alleen van toepassing op SQL Server.The statements include file placement, FILESTREAM, and service broker options that only apply to SQL Server. Dit kan niet van belang als u databases maken voordat u migreert, maar als u migreert van T-SQL-code die wordt gemaakt van databases Vergelijk CREATE DATABASE (Azure SQL Database) met de syntaxis van de SQL Server op maken DATABASE (SQL Server Transact-SQL) om ervoor te zorgen dat alle opties die u gebruiken 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. DATABASE maken voor Azure SQL Database heeft ook servicedoelstelling en flexibele schaalmogelijkheden opties die alleen van toepassing op SQL-Database.CREATE DATABASE for Azure SQL Database also has service objective and elastic scale options that apply only to SQL Database.
  • Het maken en ALTER TABLE-instructies hebt bestandstabel opties die op de SQL-Database kunnen niet worden gebruikt omdat FILESTREAM wordt niet ondersteund.The CREATE and ALTER TABLE statements have FileTable options that cannot be used on SQL Database because FILESTREAM is not supported.
  • MAKEN en ALTER login-instructies 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. Als u uw database draagbaarder, raadt SQL-Database met behulp van ingesloten databasegebruikers in plaats van aanmeldingen indien mogelijk.To make your database more portable, SQL Database encourages using contained database users instead of logins whenever possible. Zie voor meer informatie, CREATE/ALTER LOGIN en beheren en het verlenen van toegang tot de database.For more information, see CREATE/ALTER LOGIN and Controlling and granting database access.

Niet ondersteund in Azure SQL Database Transact-SQL-syntaxisTransact-SQL syntax not supported in Azure SQL Database

Naast de Transact-SQL-instructies met betrekking tot de niet-ondersteunde functies die beschreven worden vergelijking van Azure SQL Database, de volgende instructies en groepen instructies worden 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 zodanig, als uw database worden gemigreerd maakt gebruik van de volgende functies, opnieuw engineering toepassen op uw T-SQL 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
  • Verbindingen gerelateerd: Eindpuntinstructies voor het.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
  • Eventing: Gebeurtenissen, meldingen van gebeurtenissen, querymeldingenEventing: Events, event notifications, query notifications
  • Plaatsing van bestanden: Syntaxis die betrekking heeft op databasebestandsplaatsing, grootte en databasebestanden die automatisch worden beheer door Microsoft Azure.File placement: Syntax related to database file placement, size, and database files that are automatically managed by Microsoft Azure.
  • Hoge beschikbaarheid: Syntaxis die betrekking heeft op hoge beschikbaarheid 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.
  • De logboeklezer: De syntaxis die afhankelijk is van de logboekweergave die niet beschikbaar op de SQL-Database is: 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 die betrekking heeft op hardwaregerelateerde serverinstellingen:, zoals geheugen, werkthreads, CPU-affiniteit, trace worden gemarkeerd.Hardware: Syntax related to hardware-related server settings: such as memory, worker threads, CPU affinity, trace flags. Gebruik van service-lagen en compute-grootten in plaats daarvan.Use service tiers and compute sizes instead.
  • KILL STATS JOB
  • OPENQUERY, OPENROWSET, OPENDATASOURCE, en vierdelige namenOPENQUERY, OPENROWSET, OPENDATASOURCE, and four-part names
  • .NET Framework: CLR-integratie met SQL Server.NET Framework: CLR integration with SQL Server
  • Semantische zoekopdrachtenSemantic search
  • Serverreferenties voor: Gebruik referenties in het databasebereik in plaats daarvan.Server credentials: Use database scoped credentials instead.
  • Items op serverniveau: Serverrollen, 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-database: waarschuwingen, operators, servers voor centraal beheer.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 audit: Gebruik in plaats daarvan SQL Database-controles.SQL Server audit: Use SQL Database auditing instead.
  • SQL Server-traceringSQL Server trace
  • Traceermarkeringen: Sommige traceermarkeringsitems zijn verplaatst naar compatibiliteitsmodi.Trace flags: Some trace flag items have been moved to compatibility modes.
  • Transact-SQL-foutopsporingTransact-SQL debugging
  • Triggers: Binnen het serverbereik of aanmelding triggersTriggers: Server-scoped or logon triggers
  • USE Overzicht: Als u de databasecontext wilt een andere database, moet u een nieuwe verbinding met de nieuwe database maken.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 voor meer informatie over Transact-SQL-grammatica, syntaxis en voorbeelden, naslaginformatie voor Transact-SQL (Database-Engine) in SQL Server Books Online.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-naslaginformatie bevat artikelen die betrekking hebben op versies van SQL Server 2008 bij de huidige.The Transact-SQL reference includes articles related to SQL Server versions 2008 to the present. Onder de titel van het artikel is een pictogram balk met pictogrammen de vier SQL Server-platforms en toepasselijkheid waarmee wordt 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. De CREATE AVAILABILITY GROUP artikel geeft aan dat de instructie is van toepassing op SQL-Server (vanaf 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 kan worden gebruikt in een product, 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 waar nodig in het artikel waar nodig.The differences are indicated at midpoints in the article as appropriate. In sommige gevallen kan het algemene onderwerp van een artikel kan worden gebruikt in een product, 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 waar nodig in het artikel waar nodig.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 alle SERVER optie voor triggers op serverniveau, geeft aan dat de triggers op serverniveau kunnen niet 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 op databaseniveau triggers.Use database-level triggers instead.

Volgende stappenNext steps

Zie voor een lijst van de functies die worden ondersteund en wordt niet ondersteund door SQL Database, vergelijking van Azure 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 is een aanvulling op dat artikel richtlijnen en -functies, en is gericht op Transact-SQL-instructies.The list on this page supplements that guidelines and features article, and focuses on Transact-SQL statements.