Teilen über


Projekteinstellungen (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

@@ERROR

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:

Mode Wert
Standard Konvertieren und Markieren mit Warnung
Optimistisch Konvertieren und Markieren mit Warnung
Vollständig Markieren mit Fehler

Konvertierung des LIKE-Operators

Gibt an, ob Operanden in SAP ASE-Verhalten konvertiert LIKE werden sollen. Der Punkt ist, dass ASE nachfolgende Leerzeichen in einem ähnlichen Muster schneidet. Die Problemumgehung besteht darin, eine Umwandlung eines rechten Ausdrucks in einen Datentyp mit fester Länge mit maximaler Genauigkeit zu erstellen.

  • 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:

Mode Wert
Standard Einfache Konvertierung
Optimistisch Einfache Konvertierung
Vollständig In feste Länge umwandeln

KONVERTIEREN oder UMWANDELN leerer Zeichenfolgen in numerische Typen

Gibt an, wie leere oder leere Zeichenfolgen innerhalb CONVERT oder CAST Ausdrücke mit numerischem Typ als Datentypargument 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 null numerischer Wert ausgewählt ist, wird der Zeichenfolgenparameter {s} durch CASE ltrim(rtrim({s})) WHEN "" THEN 0 else {s} END den Ausdruck ersetzt.

Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:

Mode Wert
Standard Einfache Konvertierung
Optimistisch Einfache Konvertierung
Vollständig Leere Zeichenfolge als null numerisch

Verkettung von NULL

Diese Einstellung gibt an, wie Zeichenfolgenverkettung mit NULL. Die folgenden Optionen können für diese bestimmte Einstellung festgelegt werden:

  • Wenn die Option "Umbruch mit ISNULL-Funktion " ausgewählt ist, wird jede nichtkonstante string_expression Verkettung mit ISNULL(string_expression) und NULLs durch leere Zeichenfolge 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:

Mode Wert
Standard Aktuelle Syntax beibehalten
Optimistisch Aktuelle Syntax beibehalten
Vollständig Mit ISNULL-Funktion umbrechen

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:

Mode 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. Bei x86-Prozessoren CONVERT(integer, 0x00000100) 65536 wird z. B. in ASE, aber 256 in SQL Server zurückgegeben. ASE gibt je nach Bytereihenfolge auch unterschiedliche Werte zurück.

Verwenden Sie diese Einstellung, um zu steuern, wie SSMA Binäre Werte konvertiert CONVERT und CAST Ausdrücke enthält:

  • 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 "Richtig " aus, damit SSMA konvertiert und die Ausdrücke für die Verwendung in SQL Server korrigiert werden. 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:

Mode Wert
Standard Konvertieren und Markieren mit Warnung
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:

Mode Wert
Standard Konvertieren und Markieren mit Warnung
Optimistisch Konvertieren und Markieren mit Warnung
Vollständig Markieren mit Fehler

Konvertierung der Gleichheitsprüfung

Wenn die ANSI_NULLS Einstellung aktiviert ist, gibt SQL Server/Azure SQL in SQL Server/Azure sql zurück UNKNOWN , wenn ein Gleichheitsvergleich einen NULL Wert enthält. Wenn ANSI_NULLS dies deaktiviert ist, geben Gleichheitsvergleiche, die Werte enthalten NULL , "true" zurück, wenn die verglichene Spalte und der Ausdruck oder zwei Ausdrücke beide NULLsind. 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 sie sich in SQL Server/Azure SQL befindet OFF , oder wenn Sie Vergleiche der Gleichheit auf Fallbasis überarbeiten möchten.
  • Wenn Sie "NULL-Werte berücksichtigen" auswählen, fügt SSMA Mithilfe der IS NULL Und-Klauseln IS NOT NULL Überprüfungen auf NULL Werte hinzu.

Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:

Mode 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 mithilfe der Variablen erstellen oder eine neue Variable erstellen und eine Zeichenfolge mithilfe dieser Variablen erstellen.

  • Wenn Sie ein Zeichenfolgenliteral für PRINT und RAISERROR Funktionen verwenden möchten, wählen Sie " Neue Zeichenfolge erstellen" aus.

    Wenn in diesem Modus keine PRINT- oder RAISERROR-Anweisung Platzhalter und lokale Variablen verwendet, ist die Anweisung unverändert. Double Percent characters (%%) are changed to a single percent character % in PRINT string literals.

    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 es sich um eine Variable handelt, 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 der Neue Zeichenfolgenmodus erstellt wird, geht SSMA davon aus, dass die SQL Server-Option CONCAT_NULL_YIELDS_NULL istOFF. Daher sucht SSMA nicht auf NULL-Argumente.

  • Wenn SSMA eine neue Variable für jede und jede PRINT Anweisung erstellt und dann diese Variable für den Zeichenfolgenwert verwendet, wählen Sie "Neue Variable erstellen" RAISERROR aus.

    Wenn in diesem Modus keine PRINT RAISERROR Platzhalter und lokale Variablen verwendet werden, ersetzt SSMA alle doppelten Prozentzeichen (%%) durch einzelne Prozentzeichen, um die SQL Server/Azure SQL-Syntax einzuhalten.

    Wenn eine oder eine PRINT Anweisung RAISERROR Platzhalter und eine oder mehrere lokale Variablen verwendet, z. B. im folgenden Beispiel:

    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 es sich um eine Variable handelt, 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:

Mode 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 INSERT werden Keine Anweisungen konvertiert und mit Fehlerkommentaren markiert.

Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:

Mode 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.
Mode 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:

Mode 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_NULL keine OFF Überprüfungen auf NULL Argumente vornimmt.
  • Im Vollmodus sucht SSMA nach NULL Argumenten.
  • RAISERROR with arg-list argument is not converted.

Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:

Mode 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:

Mode Wert
Standard Konvertieren und Markieren mit Warnung
Optimistisch Konvertieren und Markieren mit Warnung
Vollständig Markieren mit Fehler

Nicht aufgelöste Bezeichner

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 "Mit Fehler markieren" auswählen, konvertiert SSMA keine Verweise in nicht aufgelöste Bezeichner und markiert Anweisungen mit Fehlerkommentaren.

Wenn Sie im Feld "Modus " einen Konvertierungsmodus auswählen, wendet SSMA die folgende Einstellung an:

Mode Wert
Standard Konvertieren und Markieren mit Warnung
Optimistisch Konvertieren und Markieren mit Warnung
Vollständig Markieren mit Fehler

Abschnitt "Systemfunktionen"

CHARINDEX-Funktion

Gibt in ASE nur dann zurückNULL, CHARINDEX wenn alle Eingabeausdrücke vorhanden sindNULL. SQL Server/Azure SQL wird zurückgegeben NULL , wenn ein Eingabeausdruck lautet NULL.

  • Um das ASE-Verhalten zu verwenden, wählen Sie " Ersetzen"-Funktion aus. Alle Aufrufe der CHARINDEX Funktion werden durch einen Aufruf an eine oder CHARINDEX_VARCHAR CHARINDEX_NVARCHAR eine 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:

Mode 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-Rückgaben 0 und ASE-Rückgaben zurück 1.

  • 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:

Mode 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.
  • Wenn Bei jedem Auftreten INDEX_COL eine Fehlermeldung angezeigt werden soll, wählen Sie " Mit Fehler markieren" aus. SSMA konvertiert keine Verweise auf die Funktion und markiert die Anweisung mit Fehlerkommentaren.
Mode 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.
  • Wenn Sie bei jedem Auftreten INDEX_COLORDER eine Fehlermeldung drucken möchten, 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:

Mode 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 CASE einen Ausdruck ersetzt, der für einen negativen Wert zurückgegeben NULL würde.
  • 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:

Mode 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 ersetzt NULL .

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.
  • Wenn Sie bei jedem Auftreten NEXT_IDENTITY eine Fehlermeldung drucken möchten, 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:

Mode Wert
Standard Markieren mit Fehler
Optimistisch Markieren mit Fehler
Vollständig Markieren mit Fehler

Standard/Optimistisch/Vollmodus: Mit Fehler markieren

PATINDEX-Funktion

Gibt an, ob die Funktion in übereinstimmung mit dem SAP ASE-Verhalten konvertiert PATINDEX werden soll. Der Punkt ist, dass ASE nachfolgende Leerzeichen in einem Suchmuster kürzet. Die Problemumgehung besteht darin, einen Wertausdruck in einen Datentyp mit fester Länge mit maximaler Genauigkeit zu umwandeln und die Funktion auf das Suchmuster anzuwenden rtrim .

  • 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:

Mode Wert
Standard Nicht verwenden
Optimistisch Nicht verwenden
Vollständig Zweck

REPLICATE-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 eine oder REPLICATE_VARCHAR REPLICATE_NVARCHAR eine 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:

Mode Wert
Standard Funktion ersetzen
Optimistisch Funktion ersetzen
Vollständig Funktion ersetzen

TRIM -Funktion (LTRIM, RTRIM)

Diese Einstellung gibt an, LTRIM ob Aufrufe von TRIMund RTRIM Funktionen durch die 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:

Mode 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 der SUBSTRING Funktion werden durch einen Aufruf SUBSTRING_VARCHAR oder SUBSTRING_NVARCHAR SUBSTRING_VARBINARY eine 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:

Mode 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.

Mode Wert
Standard Nein
Optimistisch Nein
Vollständig Ja

Hinweis

Wenn eine Verbindung mit Azure SQL hergestellt wird, ist dies standardmäßig "Ja ".

Weitere Informationen

User Interface Reference (SybaseToSQL) (Verweis auf die Benutzeroberfläche (SybaseToSQL))