Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Seite "Konvertierung " des Dialogfelds "Projekteinstellungen " enthält Einstellungen, die anpassen, wie SSMA die SAP Adaptive Server Enterprise (ASE)-Syntax in SQL Server- oder Azure SQL-Syntax konvertiert.
Der Konvertierungsbereich ist in den Dialogfeldern "Projekteinstellungen " und " Standardprojekteinstellungen " verfügbar:
Wenn Sie Einstellungen für alle SSMA-Projekte angeben möchten, wählen Sie im Menü "Extras " die Option "Standardprojekteinstellungen" aus, klicken Sie unten im linken Bereich auf " Allgemein ", und klicken Sie dann auf "Konvertierung".
Um Einstellungen für das aktuelle Projekt anzugeben, wählen Sie im Menü "Extras " die Option "Projekteinstellungen" aus, klicken Sie unten im linken Bereich auf " Allgemein ", und klicken Sie dann auf "Konvertierung".
Sonstiger Abschnitt
Fehler
SQL Server/Azure SQL und ASE verwenden unterschiedliche Fehlercodes.
Verwenden Sie diese Einstellung, um den Nachrichtentyp (Warnung oder Fehler) anzugeben, den SSMA im Bereich "Ausgabe" oder "Fehlerliste" anzeigt, wenn ein Verweis @@ERROR auf den ASE-Code auftritt.
- Wenn Sie "Konvertieren" und "Mit Warnung markieren" auswählen, konvertiert SSMA die Anweisungen und markiert sie mit Warnungskommentaren.
- Wenn Sie „Mit Fehler markieren“ auswählen, überspringt SSMA die Konvertierung und markiert die Anweisungen mit Fehlerkommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Konvertieren und mit Warnung markieren |
| Optimistisch | Konvertieren und mit Warnung markieren |
| Vollständig | Markieren mit Fehler |
Konvertierung des LIKE-Operators
Gibt an, ob die Operanden LIKE konvertiert werden sollen, um dem SAP ASE-Verhalten zu entsprechen. Der entscheidende Punkt ist, dass ASE nachfolgende Leerzeichen in ähnlicher Weise entfernt. Die Problemumgehung besteht darin, den rechten Ausdruck in einen Datentyp mit fester Länge und maximaler Genauigkeit umzuwandeln.
- Wählen Sie "Einfache Konvertierung" aus, um die Ausdrücke ohne Korrektur zu konvertieren.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Cast to fixed length" aus.
Wenn Sie im Feld "Modus" einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Einfache Konvertierung |
| Optimistisch | Einfache Konvertierung |
| Vollständig | In feste Länge konvertieren |
KONVERTIEREN oder UMWANDELN leerer Zeichenfolgen in numerische Typen
Gibt an, wie leere oder nicht vorhandene Zeichenfolgen in Ausdrücken des numerischen Typs innerhalb von CONVERT oder CAST behandelt werden. Die folgenden Optionen stehen für diese Einstellung zur Verfügung:
- Wählen Sie "Einfache Konvertierung" aus, um die Ausdrücke ohne Korrektur zu konvertieren.
- Wenn leere Zeichenfolge als Nullwert ausgewählt ist, wird der Zeichenfolgenparameter
{s}durch den AusdruckCASE ltrim(rtrim({s})) WHEN "" THEN 0 else {s} ENDersetzt.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Einfache Konvertierung |
| Optimistisch | Einfache Konvertierung |
| Vollständig | Leere Zeichenfolge als Nullwert |
Verkettung von NULL
Diese Einstellung legt fest, wie die Zeichenfolgenverkettung mit NULL durchgeführt wird. Die folgenden Optionen können für diese bestimmte Einstellung festgelegt werden:
- Wenn die Option "Umbruch mit ISNULL-Funktion" ausgewählt ist, wird jedes nicht-konstante
string_expressionin der Verkettung mitISNULL(string_expression)umschlossen und NULLs werden durch eine leere Zeichenkette ersetzt. - Die aktuelle Syntax behält die ursprüngliche Syntax bei.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Aktuelle Syntax beibehalten |
| Optimistisch | Aktuelle Syntax beibehalten |
| Vollständig | Mit der Funktion ISNULL umwickeln |
Konvertierung leerer Zeichenfolgen
Diese Einstellung gibt an, wie leere Zeichenfolgen konvertiert werden. Die folgenden Optionen können für diese bestimmte Einstellung festgelegt werden:
- Ersetzen aller Zeichenfolgenausdrücke durch Leerzeichen
- Ersetzen leerer Zeichenfolgenkonstanten durch Leerzeichen
Um das SQL Server/Azure SQL-Verhalten zu verwenden, wählen Sie "Aktuelle Syntax beibehalten" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Aktuelle Syntax beibehalten |
| Optimistisch | Aktuelle Syntax beibehalten |
| Vollständig | Ersetzen aller Zeichenfolgenausdrücke durch Leerzeichen |
CONVERT- und CAST-Binärzeichenfolgenkonvertierung
Die Konvertierung von Binärwerten in Zahlen kann unterschiedliche Werte auf verschiedenen Plattformen zurückgeben. Zum Beispiel geben x86-Prozessoren CONVERT(integer, 0x00000100) in ASE 65536 zurück, aber 256 in SQL Server. ASE gibt je nach Bytereihenfolge auch unterschiedliche Werte zurück.
Verwenden Sie diese Einstellung, um zu steuern, wie SSMA Ausdrücke konvertiert, die CONVERT und CAST mit binären Werten enthalten.
- Wählen Sie "Einfache Konvertierung" aus, um die Ausdrücke ohne Warnungen oder Korrekturen zu konvertieren. Verwenden Sie diese Einstellung, wenn Sie wissen, dass der ASE-Server über eine Bytereihenfolge verfügt, für die keine Änderungen des Binärwerts erforderlich sind.
- Wählen Sie "Konvertieren und Korrigieren" aus, damit SSMA die Ausdrücke für die Verwendung in SQL Server konvertiert und korrigiert. Die Bytereihenfolge in Literalkonstanten wird umgekehrt. Alle anderen Binärwerte (z. B. binäre Variablen und Spalten) werden mit Fehlern markiert. Verwenden Sie diesen Wert, wenn Sie wissen, dass der ASE-Server über eine Bytereihenfolge verfügt, die Änderungen an Binären Werten erfordert.
Wählen Sie "Konvertieren" und "Mit Warnung markieren ", damit SSMA die Ausdrücke konvertieren und korrigieren soll, und markieren Sie alle konvertierten Ausdrücke mit Warnungskommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Konvertieren und mit Warnung markieren |
| Optimistisch | Einfache Konvertierung |
| Vollständig | Konvertieren und korrigieren |
Dynamische SQL-Anweisungen
Verwenden Sie diese Einstellung, um den Typ der Nachricht (Warnung oder Fehler) anzugeben, die SSMA im Bereich "Ausgabe " oder " Fehlerliste " anzeigt, wenn es im ASE-Code auf dynamische SQL trifft.
- Wenn Sie "Konvertieren" und "Mit Warnung markieren" auswählen, konvertiert SSMA die dynamische SQL-Datei und markiert die Anweisungen mit Warnungskommentaren.
- Wenn Sie „Mit Fehler markieren“ auswählen, überspringt SSMA die Konvertierung und markiert die Anweisungen mit Fehlerkommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Konvertieren und mit Warnung markieren |
| Optimistisch | Konvertieren und mit Warnung markieren |
| Vollständig | Markieren mit Fehler |
Konvertierung der Gleichheitsprüfung
Wenn die ANSI_NULLS-Einstellung aktiviert ist, gibt SQL Server/Azure SQL UNKNOWN zurück, wenn ein Gleichheitsvergleich einen NULL-Wert enthält. Wenn ANSI_NULLS deaktiviert ist, geben Gleichheitsvergleiche mit NULL-Werten 'true' zurück, wenn die verglichene Spalte und der Ausdruck oder zwei Ausdrücke beide NULL sind. Standardmäßig (ANSINULL OFF) verhalten sich SAP ASE-Gleichheitsvergleiche wie SQL Server/Azure SQL mit ANSI_NULLS OFF.
- Wenn Sie die einfache Konvertierung auswählen, konvertiert SSMA den ASE-Code ohne zusätzliche Überprüfungen auf
NULLWerte in SQL Server/Azure SQL-Syntax. Verwenden Sie diese Einstellung, wennANSI_NULLSalsOFFin SQL Server/Azure SQL konfiguriert ist oder wenn Sie Gleichheitsvergleiche fallweise überarbeiten möchten. - Wenn Sie "NULL-Werte berücksichtigen" auswählen, fügt SSMA Überprüfungen für
NULL-Werte hinzu, indem es dieIS NULL- undIS NOT NULL-Klauseln verwendet.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Einfache Konvertierung |
| Optimistisch | Einfache Konvertierung |
| Vollständig | Erwägen Sie NULL-Werte. |
Formatzeichenfolgen
SQL Server/Azure SQL unterstützt das format_string Argument in PRINT und RAISERROR Anweisungen nicht mehr. Das format_string Argument erlaubte, ersetzbare Parameter direkt in die Zeichenfolge einzufügen und dann die Parameter zur Laufzeit zu ersetzen. Stattdessen erfordert SQL Server die vollständige Zeichenfolge mithilfe eines Zeichenfolgenliterals oder einer Zeichenfolge, die mithilfe einer Variablen erstellt wurde. Weitere Informationen finden Sie im Thema PRINT (Transact-SQL).
Wenn SSMA auf ein format_string Argument trifft, kann es entweder ein Zeichenfolgenliteral mit den Variablen bilden oder eine neue Variable erstellen und damit eine Zeichenfolge aufbauen.
Wenn Sie ein Zeichenfolgenliteral für
PRINTundRAISERRORFunktionen verwenden möchten, wählen Sie "Neue Zeichenfolge erstellen" aus.In diesem Modus bleibt die Anweisung unverändert, wenn eine PRINT- oder RAISERROR-Anweisung keine Platzhalter und lokalen Variablen verwendet. In PRINT-Zeichenfolgenliteralen werden doppelte Prozentzeichen (%%) zu einem einzelnen Prozentzeichen % geändert.
Wenn eine PRINT- oder RAISERROR-Anweisung Platzhalter und eine oder mehrere lokale Variablen verwendet, z. B. im folgenden Beispiel:
PRINT 'Total: %1!%%', @percentSSMA konvertiert sie in die folgende Syntax:
PRINT 'Total: '+ CAST(@percent AS varchar(max)) + '%'Wenn
format_stringeine Variable ist, z. B. in der folgenden Anweisung:PRINT @fmt, @arg1, @arg2SSMA kann keine einfache Zeichenfolgenkonvertierung ausführen und muss eine neue Variable erstellen:
DECLARE @print_format_1 varchar(max) SET @print_format_1 = REPLACE (@fmt, '%%', '%') SET @print_format_1 = REPLACE (@print_format_1, '%1!', CAST (@arg1 AS varchar(max))) SET @print_format_1 = REPLACE (@print_format_1, '%2!', CAST (@arg2 AS varchar(max))) PRINT @print_format_1Wenn die Option Neue Zeichenfolgen erstellen verwendet wird, geht SSMA davon aus, dass die SQL Server-Option
CONCAT_NULL_YIELDS_NULLalsOFFfestgelegt ist. Daher sucht SSMA nicht auf NULL-Argumente.Um SSMA eine neue Variable für jede
PRINT- undRAISERROR-Anweisung erstellen zu lassen und diese Variable dann für den Zeichenfolgenwert zu verwenden, wählen Sie Neue Variable erstellen aus.In diesem Modus, wenn eine
PRINT- oderRAISERROR-Anweisung keine Platzhalter und lokalen Variablen verwendet, ersetzt SSMA alle doppelten Prozentzeichen (%%) durch einfache Prozentzeichen, um die SQL Server/Azure SQL-Syntax einzuhalten.Wenn eine
PRINToderRAISERRORAnweisung Platzhalter und eine oder mehrere lokale Variablen, wie im folgenden Beispiel, verwendet:PRINT 'Total: %1!%%', @percentSSMA konvertiert sie in die folgende Syntax:
DECLARE @print_format_1 varchar(max) SET @print_format_1 = 'Total: %1!%' SET @print_format_1 = REPLACE (@print_format_1, '%1!', ISNULL(CAST (@percent AS VARCHAR(max)), '')) PRINT @print_format_1Wenn
format_stringeine Variable ist, z. B. in der folgenden Anweisung:PRINT @fmt, @arg1, @arg2SSMA erstellt eine neue Variable wie folgt, wobei bei jedem Argument nach Nullwerten gesucht wird:
DECLARE @print_format_1 varchar(max) SET @print_format_1 = REPLACE (@fmt, '%%', '%') SET @print_format_1 = REPLACE (@print_format_1, '%1!', ISNULL(CAST (@arg1 AS varchar(max)),'')) SET @print_format_1 = REPLACE (@print_format_1, '%2!', ISNULL(CAST (@arg2 AS varchar(max)),'')) PRINT @print_format_1
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Neue Zeichenfolge erstellen |
| Optimistisch | Neue Zeichenfolge erstellen |
| Vollständig | Neue Variable erstellen |
Einfügen eines expliziten Werts in eine Zeitstempelspalte
SQL Server/Azure SQL unterstützt das Einfügen expliziter Werte in eine Zeitstempelspalte nicht.
- Um Zeitstempelspalten aus
INSERTAnweisungen auszuschließen, wählen Sie "Spalte ausschließen" aus. - Wenn Sie immer dann eine Fehlermeldung drucken möchten, wenn sich eine Zeitstempelspalte in einer
INSERTAnweisung befindet, wählen Sie "Mit Fehler markieren" aus. In diesem Modus werdenINSERTkeine Anweisungen konvertiert und sie werden mit Fehlerkommentaren markiert.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Spalte ausschließen |
| Optimistisch | Spalte ausschließen |
| Vollständig | Markieren mit Fehler |
Temporäre Objekte speichern, die in Prozeduren definiert sind
Diese Einstellung gibt an, ob die temporären Objektdefinitionen, die in den Prozeduren angezeigt werden, während der Konvertierung in den Quellmetadaten gespeichert werden sollen.
- Wählen Sie "Ja " aus, um Metadaten zu speichern.
- Wählen Sie "Nein " aus, wenn die Objekte nicht gespeichert werden müssen.
| Modus | Wert |
|---|---|
| Standard | Ja |
| Optimistisch | Ja |
| Vollständig | Nein |
Proxytabellenkonvertierung
Gibt an, ob ASE-Proxytabellen in SQL Server/Azure SQL-Tabellen konvertiert werden oder nicht konvertiert werden und der Code mit Fehlerkommentaren markiert ist.
- Wählen Sie "Konvertieren" aus, um Proxytabellen in reguläre Tabellen zu konvertieren.
- Wählen Sie Mit „Fehler“ markieren aus, um einfach den Proxytabellencode mit Fehlerkommentaren zu markieren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Markieren mit Fehler |
| Optimistisch | Markieren mit Fehler |
| Vollständig | Markieren mit Fehler |
RAISERROR-Basisnachrichtennummer
ASE-Benutzernachrichten werden in jeder Datenbank gespeichert. SQL Server-Benutzernachrichten werden zentral gespeichert und über die sys.messages Katalogansicht verfügbar gemacht. Darüber hinaus beginnen ASE-Benutzernachrichten bei 20000, aber SQL Server-Fehlermeldungen beginnen bei 50001.
Diese Einstellung gibt die Nummer an, die der ASE-Benutzernachrichtennummer hinzugefügt werden soll, um sie in eine SQL Server-Benutzernachricht zu konvertieren. Wenn Ihr SQL Server Benutzernachrichten in der sys.messages Katalogansicht enthält, müssen Sie diese Zahl möglicherweise in einen höheren Wert ändern. Dies ist so, dass die konvertierten Nachrichtennummern nicht mit vorhandenen Nachrichtennummern in Konflikt stehen.
Beachten Sie Folgendes:
- ASE-Nachrichten im Bereich
17000-19999stammen aus dersysmessagesSystemtabelle und werden nicht konvertiert. - Wenn die in der
RAISERRORAnweisung referenzierte Nachrichtennummer eine Konstante ist, fügt SSMA der Konstanten die Basisnachrichtennummer hinzu, um die neue Benutzernachrichtennummer zu ermitteln. - Wenn es sich bei der Nachrichtennummer, auf die verwiesen wird, um eine Variable oder einen Ausdruck handelt, erstellt SSMA eine lokale Zwischenvariable.
- Im optimistischen Modus geht SSMA davon aus, dass die SQL Server-Option
CONCAT_NULL_YIELDS_NULLOFFist und führt keine Überprüfungen aufNULLArgumente durch. - Im Vollmodus sucht SSMA nach
NULLArgumenten. -
RAISERRORmitarg-listArgument wird nicht konvertiert.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | 30001 |
| Optimistisch | 30001 |
| Vollständig | 30001 |
Systemobjekte
Verwenden Sie diese Einstellung, um den Typ der Nachricht (Warnung oder Fehler) anzugeben, die SSMA im Bereich " Ausgabe " oder " Fehlerliste " anzeigt, wenn die Verwendung von ASE-Systemobjekten auftritt.
- Wenn Sie "Konvertieren" und "Mit Warnung markieren" auswählen, konvertiert SSMA Verweise auf Systemobjekte und markiert Anweisungen mit Warnungskommentaren.
- Wenn Sie "Mit Fehler markieren" auswählen, konvertiert SSMA keine Verweise auf Systemobjekte und markiert Anweisungen mit Fehlerkommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Konvertieren und mit Warnung markieren |
| Optimistisch | Konvertieren und mit Warnung markieren |
| Vollständig | Markieren mit Fehler |
Nicht aufgelöste Kennungen
Verwenden Sie diese Einstellung, um den Typ der Nachricht (Warnung oder Fehler) anzugeben, die SSMA im Bereich " Ausgabe " oder " Fehlerliste " anzeigt, wenn ein Bezeichner nicht aufgelöst werden kann.
- Wenn Sie "Konvertieren" und "Mit Warnung markieren" auswählen, versucht SSMA, Verweise in nicht aufgelöste Bezeichner zu konvertieren und Anweisungen mit Warnungskommentaren zu markieren.
- Wenn Sie Fehler markieren auswählen, konvertiert SSMA keine Verweise auf nicht aufgelöste Bezeichner und markiert Anweisungen mit Fehler-Kommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Konvertieren und mit Warnung markieren |
| Optimistisch | Konvertieren und mit Warnung markieren |
| Vollständig | Markieren mit Fehler |
Abschnitt "Systemfunktionen"
CHARINDEX-Funktion
In ASE gibt CHARINDEX nur NULL zurück, wenn alle Eingabeausdrücke NULL sind. SQL Server/Azure SQL gibt NULL zurück, wenn ein Eingabeausdruck NULL ist.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Ersetzen"-Funktion aus. Alle Aufrufe der
CHARINDEX-Funktion werden durch einen Aufruf an entweder dieCHARINDEX_VARCHAR- oder dieCHARINDEX_NVARCHAR-benutzerdefinierte Funktion ersetzt, basierend auf dem Typ der übergebenen Parameter (erstellt in der Benutzerdatenbank unter dem Schemanamens2ss), um das SAP ASE-Verhalten zu emulieren. - Um das SQL Server/Azure SQL-Verhalten zu verwenden, wählen Sie "Aktuelle Syntax beibehalten" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Aktuelle Syntax beibehalten |
| Optimistisch | Aktuelle Syntax beibehalten |
| Vollständig | Funktion ersetzen |
DATALENGTH-Funktion
SQL Server/Azure SQL und ASE unterscheiden sich in dem Wert, der von der DATALENGTH Funktion zurückgegeben wird, wenn der Wert ein einzelnes Leerzeichen ist. In diesem Fall gibt SQL Server/Azure SQL 0 und ASE 1 zurück.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Ersetzen"-Funktion aus. Alle Aufrufe der
DATALENGTHFunktion werden durchCASEAusdruck ersetzt, um das SAP ASE-Verhalten zu emulieren. - Um das standardmäßige SQL Server/Azure SQL-Verhalten zu verwenden, wählen Sie "Aktuelle Syntax beibehalten" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Aktuelle Syntax beibehalten |
| Optimistisch | Aktuelle Syntax beibehalten |
| Vollständig | Funktion ersetzen |
INDEX_COL-Funktion
ASE unterstützt ein optionales user_id Argument für die INDEX_COL Funktion. SQL Server/Azure SQL unterstützt dieses Argument jedoch nicht. Wenn Sie das user_id Argument verwenden, kann diese Funktion nicht in SQL Server/Azure SQL-Syntax konvertiert werden.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Konvertieren"-Funktion aus. Wenn der Code das
user_idArgument enthält, zeigt SSMA einen Fehler an. - Bei jedem Auftreten von
INDEX_COLwählen Sie Mit Fehler markieren aus, um eine Fehlermeldung anzuzeigen. SSMA konvertiert keine Verweise auf die Funktion und markiert die Anweisung mit Fehlerkommentaren.
| Modus | Wert |
|---|---|
| Standard | Markieren mit Fehler |
| Optimistisch | Markieren mit Fehler |
| Vollständig | Markieren mit Fehler |
INDEX_COLORDER-Funktion
SQL Server/Azure SQL verfügt nicht über eine INDEX_COLORDER Systemfunktion.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Konvertieren"-Funktion aus. Alle Aufrufe der
INDEX_COLORDERFunktion werden durch einen Aufruf einer benutzerdefinierten Funktion mit demselben NamenINDEX_COLORDERersetzt (erstellt in der Benutzerdatenbank unter dem Schemanamens2ss), wodurch das SAP ASE-Verhalten emuliert wird. - Um eine Fehlermeldung jedes Mal auszugeben, wenn
INDEX_COLORDERauftritt, wählen Sie Mit Fehler markieren aus. SSMA konvertiert keine Verweise auf die Funktion und markiert die Anweisung mit Fehlerkommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Markieren mit Fehler |
| Optimistisch | Markieren mit Fehler |
| Vollständig | Markieren mit Fehler |
LINKS- und RECHTS-Funktionen
LEFT und RIGHT Funktionen in ASE verhalten sich für negative Längenparameter unterschiedlich.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Funktion ersetzen" aus. Der Längenparameter wird dann durch den Ausdruck
CASEersetzt, derNULLfür einen negativen Wert ausgibt. - Um das SQL Server-Verhalten zu verwenden, wählen Sie "Aktuelle Syntax beibehalten" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Aktuelle Syntax beibehalten |
| Optimistisch | Aktuelle Syntax beibehalten |
| Vollständig | Funktion ersetzen |
Hinweis
Wenn der Längenparameter ein Literalwert und kein komplexer Ausdruck ist, wird der Längenwert unabhängig von der Projekteinstellung immer mit NULL ersetzt.
NEXT_IDENTITY-Funktion
SQL Server/Azure SQL verfügt nicht über eine NEXT_IDENTITY Systemfunktion.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Funktion konvertieren" aus. Alle Aufrufe der
NEXT_IDENTITYFunktion werden durch einen Ausdruck(IDENT_CURRENT(parameter Value) + IDENT_INCR(parameter Value)ersetzt, der das SAP ASE-Verhalten emuliert. - Um eine Fehlermeldung jedes Mal auszugeben, wenn
NEXT_IDENTITYauftritt, wählen Sie Mit Fehler markieren aus. SSMA konvertiert keine Verweise auf die Funktion und markiert die Anweisung mit Fehlerkommentaren.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Markieren mit Fehler |
| Optimistisch | Markieren mit Fehler |
| Vollständig | Markieren mit Fehler |
Standard-/Optimistisch/Vollmodus: Markieren mit Fehler
PATINDEX-Funktion
Gibt an, ob die Funktion PATINDEX in Übereinstimmung mit dem SAP ASE-Verhalten konvertiert werden soll. Der Punkt ist, dass ASE nachfolgende Leerzeichen in einem Suchmuster kürzet. Die Problemumgehung besteht darin, einen Ausdruck für einen Wert in einen Datentyp mit fester Länge und maximaler Genauigkeit umzuwandeln und dann die rtrim Funktion auf das Suchmuster anzuwenden.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Verwenden" aus.
- Um das standardmäßige SQL Server/Azure SQL-Verhalten zu verwenden, wählen Sie "Nicht verwenden" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Nicht verwenden |
| Optimistisch | Nicht verwenden |
| Vollständig | Verwendung |
REPLIZIEREN-Funktion
Die REPLICATE Funktion wiederholt eine Zeichenfolge mit der angegebenen Anzahl von Malen. Wenn Sie in ASE angeben, dass die Zeichenfolge nullmal wiederholt werden soll, lautet NULLdas Ergebnis . In SQL Server/Azure SQL ist das Ergebnis eine leere Zeichenfolge.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Ersetzen"-Funktion aus. Alle Aufrufe der
REPLICATE-Funktion werden durch einen Aufruf an entweder dieREPLICATE_VARCHAR- oder dieREPLICATE_NVARCHAR-benutzerdefinierte Funktion ersetzt, basierend auf dem Typ der übergebenen Parameter (erstellt in der Benutzerdatenbank unter dem Schemanamens2ss), um das SAP ASE-Verhalten zu emulieren. - Wenn Sie das standardmäßige SQL Server/Azure SQL-Verhalten verwenden möchten, wählen Sie "Funktion ersetzen" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Funktion ersetzen |
| Optimistisch | Funktion ersetzen |
| Vollständig | Funktion ersetzen |
TRIM -Funktion (LTRIM, RTRIM)
Diese Einstellung gibt an, ob Aufrufe der Funktionen TRIM, LTRIM und RTRIM durch die der SAP ASE-äquivalenten Syntaxfunktionen ersetzt oder die aktuelle Syntax beibehalten werden soll. Für diese bestimmte Einstellung sind die folgenden Optionen verfügbar:
- Funktion ersetzen
- Aktuelle Syntax beibehalten
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Funktion ersetzen |
| Optimistisch | Funktion ersetzen |
| Vollständig | Funktion ersetzen |
SUBSTRING-Funktion
In ASE gibt die Funktion SUBSTRING(expression, start, length) zurück NULL , wenn ein Startwert größer als die Anzahl von Zeichen im Ausdruck angegeben wird oder die Länge null entspricht. In SQL Server/Azure SQL gibt der entsprechende Ausdruck eine leere Zeichenfolge zurück.
- Um das ASE-Verhalten zu verwenden, wählen Sie "Ersetzen"-Funktion aus. Alle Aufrufe an die
SUBSTRING-Funktion werden durch einen Aufruf vonSUBSTRING_VARCHAR,SUBSTRING_NVARCHARoderSUBSTRING_VARBINARYersetzt, je nach Typ der übergebenen Parameter (erstellt in der Benutzerdatenbank unter dem Schemanamens2ss), um das SAP ASE-Verhalten zu emulieren. - Um das SQL Server/Azure SQL-Verhalten zu verwenden, wählen Sie "Aktuelle Syntax beibehalten" aus.
Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:
| Modus | Wert |
|---|---|
| Standard | Aktuelle Syntax beibehalten |
| Optimistisch | Aktuelle Syntax beibehalten |
| Vollständig | Funktion ersetzen |
Tabellenabschnitt
Primärschlüssel hinzufügen
Erstellt einen neuen Primärschlüssel in der SQL Server- oder Azure SQL-Tabelle, wenn eine SAP ASE-Tabelle keinen Primärschlüssel oder eindeutigen Index aufweist.
| Modus | Wert |
|---|---|
| Standard | Nein |
| Optimistisch | Nein |
| Vollständig | Ja |
Hinweis
Wenn eine Verbindung mit Azure SQL hergestellt wird, ist dies standardmäßig "Ja ".