Freigeben über


Project-Einstellungen (Konvertierung) (SybaseToSQL)

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 Ausdruck CASE ltrim(rtrim({s})) WHEN "" THEN 0 else {s} END ersetzt.

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_expression in der Verkettung mit ISNULL(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 NULL Werte in SQL Server/Azure SQL-Syntax. Verwenden Sie diese Einstellung, wenn ANSI_NULLS als OFF in 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 die IS NULL- und IS 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 PRINT und RAISERROR Funktionen 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!%%', @percent
    

    SSMA konvertiert sie in die folgende Syntax:

    PRINT 'Total: '+ CAST(@percent AS varchar(max)) + '%'
    

    Wenn format_string eine Variable ist, z. B. in der folgenden Anweisung:

    PRINT @fmt, @arg1, @arg2
    

    SSMA 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_1
    

    Wenn die Option Neue Zeichenfolgen erstellen verwendet wird, geht SSMA davon aus, dass die SQL Server-Option CONCAT_NULL_YIELDS_NULL als OFF festgelegt ist. Daher sucht SSMA nicht auf NULL-Argumente.

  • Um SSMA eine neue Variable für jede PRINT- und RAISERROR-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- oder RAISERROR-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 PRINT oder RAISERROR Anweisung Platzhalter und eine oder mehrere lokale Variablen, wie im folgenden Beispiel, verwendet:

    PRINT 'Total: %1!%%', @percent
    

    SSMA 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_1
    

    Wenn format_string eine Variable ist, z. B. in der folgenden Anweisung:

    PRINT @fmt, @arg1, @arg2
    

    SSMA 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 INSERT Anweisungen auszuschließen, wählen Sie "Spalte ausschließen" aus.
  • Wenn Sie immer dann eine Fehlermeldung drucken möchten, wenn sich eine Zeitstempelspalte in einer INSERT Anweisung befindet, wählen Sie "Mit Fehler markieren" aus. In diesem Modus werden INSERT keine 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-19999 stammen aus der sysmessages Systemtabelle und werden nicht konvertiert.
  • Wenn die in der RAISERROR Anweisung 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_NULLOFF ist und führt keine Überprüfungen auf NULL Argumente durch.
  • Im Vollmodus sucht SSMA nach NULL Argumenten.
  • RAISERROR mit arg-list Argument 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 die CHARINDEX_VARCHAR- oder die CHARINDEX_NVARCHAR-benutzerdefinierte Funktion ersetzt, basierend auf dem Typ der übergebenen Parameter (erstellt in der Benutzerdatenbank unter dem Schemanamen s2ss), 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 DATALENGTH Funktion werden durch CASE Ausdruck 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_id Argument enthält, zeigt SSMA einen Fehler an.
  • Bei jedem Auftreten von INDEX_COL wä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_COLORDER Funktion werden durch einen Aufruf einer benutzerdefinierten Funktion mit demselben Namen INDEX_COLORDER ersetzt (erstellt in der Benutzerdatenbank unter dem Schemanamen s2ss), wodurch das SAP ASE-Verhalten emuliert wird.
  • Um eine Fehlermeldung jedes Mal auszugeben, wenn INDEX_COLORDER auftritt, 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 CASE ersetzt, der NULL fü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_IDENTITY Funktion 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_IDENTITY auftritt, 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 die REPLICATE_VARCHAR- oder die REPLICATE_NVARCHAR-benutzerdefinierte Funktion ersetzt, basierend auf dem Typ der übergebenen Parameter (erstellt in der Benutzerdatenbank unter dem Schemanamen s2ss), 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 von SUBSTRING_VARCHAR, SUBSTRING_NVARCHAR oder SUBSTRING_VARBINARY ersetzt, je nach Typ der übergebenen Parameter (erstellt in der Benutzerdatenbank unter dem Schemanamen s2ss), 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 ".

Siehe auch

User Interface Reference (SybaseToSQL)