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}
durchCASE 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 mitISNULL(string_expression)
undNULL
s 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 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, wennANSI_NULLS
sie sich in SQL Server/Azure SQL befindetOFF
, 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-KlauselnIS NOT NULL
Überprüfungen aufNULL
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
undRAISERROR
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
AnweisungRAISERROR
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 ModusINSERT
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 dersysmessages
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
keineOFF
Überprüfungen aufNULL
Argumente vornimmt. - Im Vollmodus sucht SSMA nach
NULL
Argumenten. RAISERROR
witharg-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 oderCHARINDEX_VARCHAR
CHARINDEX_NVARCHAR
eine 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:
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 durchCASE
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 NamenINDEX_COLORDER
ersetzt (erstellt in der Benutzerdatenbank unter dem Schemanamens2ss
), 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ückgegebenNULL
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 NULL
das 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 oderREPLICATE_VARCHAR
REPLICATE_NVARCHAR
eine 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:
Mode | Wert |
---|---|
Standard | Funktion ersetzen |
Optimistisch | Funktion ersetzen |
Vollständig | Funktion ersetzen |
TRIM -Funktion (LTRIM, RTRIM)
Diese Einstellung gibt an, LTRIM
ob Aufrufe von TRIM
und 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 AufrufSUBSTRING_VARCHAR
oderSUBSTRING_NVARCHAR
SUBSTRING_VARBINARY
eine 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:
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))