Die Funktionsweise des SQL Server-Upsizing-Assistenten
Der SQL Server-Upsizing-Assistent macht das Übertragen einer Visual FoxPro-Datenbank in eine SQL Server-Datenbank zu einer einfach durchschaubaren Angelegenheit. In diesem Abschnitt ist erläutert, welche Vorgänge ausgelöst werden, nachdem Sie auf Finish geklickt haben, d. h., wie der SQL Server-Upsizing-Assistent Daten exportiert und Visual FoxPro-Objekte auf SQL Server-Objekte abbildet.
Die Methoden für den Datenexport
Der SQL Server-Upsizing-Assistent kennt für den Export von Daten zwei Methoden. Bei der ersten Methode wird eine gespeicherte Prozedur erstellt, die wiederholt Zeilen einfügt. Diese Methode kann sehr schnell sein, da gespeicherte Prozeduren vorkompiliert sind und sehr schnell ausgeführt werden.
Gespeicherte Prozeduren gestatten aber keine binären Variablen veränderlicher Länge als Parameter. Der SQL Server-Upsizing-Assistent verwendet daher eine andere Exportmethode, wenn Sie entweder Daten exportieren, die unter einem der SQL-Datentypen Text oder Image in SQL Server-Tabellen gespeichert werden müssen, oder Tabellen exportieren, die mehr als 250 Felder haben. Bei dieser zweiten Methode wird für jede Zeile der jeweiligen Tabelle ein INSERT-Befehl (SQL) erstellt und ausgeführt.
Entdeckt der SQL Server-Upsizing-Assistent Fehler, während er Daten mit einem INSERT-Befehl (SQL) exportiert, und ist die Anzahl der Fehler größer als 10 Prozent der Anzahl der Tabellendatensätze oder größer als 100 (je nachdem, welcher Wert größer ist), bricht der Assistent den Export dieser Tabelle ab und speichert die Anzahl der Exportfehler im Fehlerbericht. Die auf den Server exportierte Tabelle wird nicht gelöscht, und alle Datensätze, die erfolgreich exportiert wurden, verbleiben in der Servertabelle.
Ein Überblick, wie Objekte abgebildet werden
Wenn der SQL Server-Upsizing-Assistent eine Visual FoxPro-Datenbank in eine Client/Server-Datenbank überträgt, erstellt er Server-Objekte, die sich, soweit das möglich ist, so verhalten wie die Visual FoxPro-Datenbank. Viele Visual FoxPro-Objekte werden unmittelbar auf Server-Objekte abgebildet: Visual FoxPro-Datenbanken, -Tabellen, -Felder, -Standardwerte und -Indizes werden direkt eins-zu-eins auf SQL Server-Datenbanken, -Tabellen, -Felder, -Standardwerte und -Indizes abgebildet.
Es können nicht alle lokalen Objekte direkt auf Server-Objekte abgebildet werden. Gültigkeitsregeln und Bedingungen für referenzielle Integrität sind in Visual FoxPro Bestandteile der Datensammlungsdatei (Data Dictionary) und werden von Visual FoxPro automatisch gewährleistet. In SQL Server sind Gültigkeitsregeln und referenzielle Integrität kein Bestandteil der Datensammlungsdatei (Data Dictionary) und werden über Code durchgesetzt, der mit einer Tabelle verknüpft ist. Sowohl diese Unterschiede als auch die vom SQL Server-Upsizing-Assistenten getroffenen Entscheidungen bezüglich des Entwurfs machen deutlich, dass ein großer Teil der Visual FoxPro-Datensammlungsdatei (Data Dictionary) nicht direkt auf SQL Server-Konstrukte abgebildet werden kann.
Die folgende Tabelle fasst zusammen, wie Visual FoxPro-Objekte auf SQL Server-Objekte abgebildet werden:
Visual FoxPro-Objekte | SQL Server-Objekte |
---|---|
Datenbank | Database |
Tabelle | Tabelle |
Indizes | Indizes |
Feld | Feld |
Standard | Standard |
Validierungsregeln für die Tabelle | Gespeicherte Prozeduren in SQL Server, die von UPDATE- und INSERT-Triggern aufgerufen werden |
Gültigkeitsregel für ein Feld | Gespeicherte Prozeduren in SQL Server, die von UPDATE- und INSERT-Triggern aufgerufen werden |
Persistente Beziehungen (als Bedingungen für referenzielle Integrität) | Update-, Insert- und Delete-Trigger oder Tabellenbeschränkungen |
In den folgenden Abschnitten ist zu jedem Visual FoxPro-Objekt das SQL Server-Objekt (bzw. die Objekte) beschrieben, auf das es abgebildet wird.
Die Regeln, nach denen exportierte Objekte benannt werden
Beim Exportieren von Objekten in eine Datenquelle erstellt der SQL Server-Upsizing-Assistent benannte Objekte auf dem Server. Es gibt Objekte, denen neue Namen zugewiesen werden müssen, da sie in Visual FoxPro nicht als eigenständige Objekte existieren (z. B. Standardwertausdrücke und Gültigkeitsregeln). Auf ein Präfix folgt ein Tabellenname und gegebenenfalls ein Feldname. Nach diesen Benennungskonventionen erhalten gleichartige Objekte das gleiche Präfix und bilden beim Anzeigen mit einem Administrationsprogramm der Datenquelle eine Gruppe. Gleiches gilt für Objekte, die auf derselben Tabelle basieren.
Datenbanken und Tabellen
Eine Visual FoxPro-Datenbank wird direkt auf eine SQL Server-Datenbank abgebildet. Eine Visual FoxPro-Tabelle wird mit Ausnahme eines Teiles ihrer Datensammlungsdatei (Data Dictionary) auf eine SQL Server-Tabelle abgebildet.
Datenbank-, Tabellen-, Index- und Feldnamen werden beim Übertragen einer lokalen in eine Client/Server-Datenbank umbenannt, wenn sie nicht den SQL Server-Benennungsvereinbarungen entsprechen. SQL Server-Namen dürfen maximal 30 Zeichen umfassen, und als erstes Zeichen muss ein Buchstabe oder das @-Zeichen verwendet werden. Bei den übrigen Zeichen kann es sich um Ziffern, Buchstaben, Dollarzeichen ($), Nummernzeichen (#) und Unterstriche (_) handeln; Leerzeichen sind nicht zulässig. Der SQL Server-Upsizing-Assistent ersetzt alle unzulässigen Zeichen durch Unterstriche (_).
Namen, die mit reservierten Wörtern von SQL Server identisch sind, erhalten einen Unterstrich als Suffix. So werden FROM und GROUP z. B. zu FROM_ und GROUP_. Außerdem setzt der SQL Server-Upsizing-Assistent einen Unterstrich vor alle Objektnamen, die mit einer Ziffer beginnen.
Tabellen
Der SQL Server-Upsizing-Assistent gibt jeder exportierten Tabelle denselben Namen wie die lokale Tabelle, es sei denn, der Tabellenname enthält Leerzeichen oder stimmt mit einem Schlüsselwort der Datenquelle überein.
Ansichten neuer Servertabellen
Wenn Sie Create Remote Views On Tables auswählen, erstellt der SQL Server-Upsizing-Assistent entsprechende Remoteansichten und übernimmt viele der Eigenschaften der Felder aus der ursprünglichen lokalen Tabelle.
Abbilden von Visual FoxPro-Namen und -Datentypen auf entsprechende SQL Server-Objekte
Feldnamen und Datentypen werden automatisch in SQL Server-Felder umgewandelt, wenn der SQL Server-Upsizing-Assistent eine Visual FoxPro-Tabelle exportiert.
Visual FoxPro-Datentypen werden folgendermaßen auf SQL Server-Datentypen abgebildet:
Abkürzung | Visual FoxPro-Datentyp | SQL Server-Datentyp |
---|---|---|
C | Zeichen |
|
Y | Währung |
|
D | Datum |
|
T | DatumZeit |
|
B | Double |
|
F | Gleitkomma |
|
G | Allgemein |
|
I | Integer |
|
L | Logisch |
|
M | Memo |
|
M (binär) | Memo (binär) |
|
C (binär) | Zeichen (binär) |
|
N | Numerisch |
|
Zeitstempel- und Identitätsspalten
Sie können Zeitstempelspalten unter Verwendung des Transact-SQL-Zeitstempel-Datentyps erstellen. Wenn Sie in Schritt 4, Map Field Data Types, das Kontrollkästchen der Spalte Timestamp für eine bestimmte Tabelle aktivieren, erstellt der SQL Server-Upsizing-Assistent ein Zeitstempelfeld für diese Tabelle.
Wenn eine Tabelle ein oder mehrere Felder vom Typ Memo (M) oder Bild (P) enthält, aktiviert der SQL Server-Upsizing-Assistent standardmäßig das Kontrollkästchen der Spalte Timestamp und erstellt in der Client/Server-Version der Tabelle ein Zeitstempelfeld.
Identitätsspalten können unter Verwendung von Transact-SQL IDENTITY-Eigenschaftsfeldern erstellt werden.
Indizes
SQL Server- und Visual FoxPro-Indizes sind sich sehr ähnlich. Der folgenden Tabelle können Sie entnehmen, welcher Visual FoxPro-Indextyp welchem SQL Server-Indextyp entspricht:
Konvertierung von Indextypen
Visual FoxPro-Indextyp | SQL Server-Indextyp |
---|---|
Primär | Clustered Unique |
Potenziell | Unique |
Unique
Einfach |
Non-unique |
Der SQL Server-Upsizing-Assistent verwendet die Visual FoxPro-Indexnamen für die Namen der Indizes unter SQL Server. Wenn der Indexname ein auf dem Server reserviertes Wort ist, ändert der Assistent den Namen, indem er einen Unterstrich (_) anfügt.
Anmerkung SQL Server unterstützt weder aufsteigende bzw. absteigende Indizes noch Ausdrücke innerhalb von Serverindizes. Während des Übertragens löscht der SQL Server-Upsizing-Assistent Visual FoxPro-Ausdrücke aus Indexausdrücken; lediglich Feldnamen werden an den Server übergeben.
SQL Server-Standardwertausdrücke (Defaults)
Ein Visual FoxPro-Standardwertausdruck wird direkt auf einen SQL Server-Standardwert abgebildet. Der SQL Server-Upsizing-Assistent versucht, einen SQL Server-Standardwert basierend auf dem Standardwertausdruck eines Visual FoxPro-Feldes zu erstellen. Kann der jeweilige Standardwertausdruck erfolgreich erstellt werden, wird er vom Assistenten an das entsprechende SQL Server-Feld gebunden. Im Upsizing-Bericht (Bericht zur Übertragung einer lokalen in eine Client/Server-Datenbank) wird festgehalten, ob es dem SQL Server-Upsizing-Assistenten gelungen ist, den jeweiligen Visual FoxPro-Ausdruck in SQL Server Transact-SQL umzuwandeln. Weitere Informationen zur Umwandlung finden Sie unter Abbilden von Ausdrücken.
Obwohl sich SQL Server- und Visual FoxPro-Standardwertausdrücke sehr ähnlich sind, gibt es doch einige Unterschiede in der Erstellung und im Verhalten der Standardwertausdrücke im jeweiligen Produkt. SQL Server-Standardwertausdrücke sind eigenständige Objekte, die unabhängig sind von einem bestimmten Feld oder einer bestimmten Tabelle. Sobald ein Standardwertausdruck (Default) erstellt ist, kann er für beliebig viele Felder verwendet werden.
Die Regeln, nach denen Standardwertausdrücke (Defaults) benannt werden
Der SQL Server-Upsizing-Assistent erstellt den Namen eines Standardwertausdrucks aus dem Präfix Dflt_
sowie dem Namen einer Tabelle und dem Namen eines Feldes. So könnte z. B. der Standardwertausdruck des Feldes max_order_amt
der Tabelle Customer
auf dem Server den Namen Dflt_Customer_max_order_amt
haben. Ergibt sich für den Standardwertausdruck aus der Kombination des Präfixes mit einem Tabellen- und einem Feldnamen ein Name, der aus mehr als 30 Zeichen besteht, trennt Visual FoxPro die überzähligen Zeichen ab.
Felder, die den Standardwert 0 haben, werden mit einem Standardwertausdruck namens UW_ZeroDefault
verknüpft. Haben zwei oder mehr Felder denselben Standardwertausdruck ungleich 0, erstellt der SQL Server-Upsizing-Assistent zwei Standardwertausdrücke mit unterschiedlichen Namen, wobei sich diese beiden Ausdrücke bezüglich ihrer Funktion nicht unterscheiden.
Standardwerte für logische Visual FoxPro-Felder
Logische Felder in SQL Server lassen keine Nullwerte zu; in Visual FoxPro dagegen sind Nullwerte in logischen Feldern erlaubt. Um diesen Unterschied aufzulösen, bindet der SQL Server-Upsizing-Assistent jedes exportierte logische Feld automatisch mit einem Standardwertausdruck namens UW_ZeroDefault
. Dieser Standardwertausdruck bewirkt, dass ein logisches SQL Server-Feld für den Fall, dass Sie keinen Wert bereitstellen, auf 0 festgelegt wird (oder Falsch (.F.), wenn Sie das Feld in Visual FoxPro anzeigen).
Enthält die lokale Visual FoxPro-Tabelle für ein logisches Feld einen Standardwertausdruck, der das Feld auf Wahr (.T.) festlegt, bindet der SQL Server-Upsizing-Assistent die Servertabelle nicht mit dem Standardwert UW_ZeroDefault. Stattdessen erstellt der Assistent einen Standardwertausdruck, der das Feld auf 1 festlegt, und weist diesem Standardwert einen Namen entsprechend der zuvor in diesem Thema erläuterten Benennungskonventionen zu.
SQL Server-Standardwertausdrücke werden anders ausgewertet als Visual FoxPro-Standardwertausdrücke.
SQL Server-Trigger
Ein SQL Server-Trigger besteht aus einer Reihe von Transact-SQL-Anweisungen, die mit einer bestimmten SQL Server-Tabelle verknüpft sind. Wenn Sie in Schritt 8 festgelegt haben, dass Gültigkeitsregeln (Validation Rules) und Beziehungen (Relations) exportiert werden sollen, wandelt der SQL Server-Upsizing-Assistent alle in Visual FoxPro formulierten Gültigkeitsregeln (feld- und datensatzbezogene) und persistente Tabellenbeziehungen in gespeicherte Prozeduren um, die von SQL Server-Triggern aufgerufen werden. Jeder auf dem Server befindliche Trigger kann Programmzeilen enthalten, die die Vorgaben verschiedener Gültigkeitsregeln sowie die Regeln für referenzielle Integrität emulieren.
Anmerkung Der SQL Server-Upsizing-Assistent exportiert keine Visual FoxPro-Trigger.
Eine Servertabelle kann drei Trigger haben, nämlich je einen für jeden der Befehle, mit denen die in einer Tabelle gespeicherten Daten geändert werden können: UPDATE, INSERT und DELETE. Der jeweilige Trigger wird automatisch aufgerufen, wenn ein entsprechender Befehl ausgeführt wird.
In der folgenden Tabelle sind die Trigger zusammengestellt, die der SQL Server-Upsizing-Assistent erstellt. Jeder Trigger kann Programmzeilen enthalten, die einige oder alle der aufgeführten Visual FoxPro-Elemente emulieren.
Trigger | Emulierte Visual FoxPro-Elemente |
---|---|
UPDATE | Gültigkeitsregeln (feld- und datensatzbezogene)
Referenzielle Integrität |
INSERT | Gültigkeitsregeln (feld- und datensatzbezogene)
Referenzielle Integrität (nur Detailtabellen-Trigger) |
DELETE (nur Master-Tabelle) | Referenzielle Integrität |
Die Regeln, nach denen Trigger benannt werden
Der SQL Server-Upsizing-Assistent benennt Servertrigger, indem er vor den Namen der SQL Server-Tabelle, zu der der Trigger gehört, ein Präfix setzt, das den Typ des zu erstellenden Triggers angibt. Das Präfix ("TrigU_" für UPDATE-Trigger, "TrigD_" für DELETE-Trigger und "TrigI_" für INSERT-Trigger) wird dem Tabellennamen vorangestellt. Beispielsweise könnte der UPDATE-Trigger der Tabelle CustomerTrigU_Customer
heißen.
Gültigkeitsregeln
Der SQL Server-Upsizing-Assistent kann Visual FoxPro-Gültigkeitsregeln (feld- und datensatzbezogene) exportieren, wobei er die Regeln in gespeicherte Prozeduren umwandelt. Der Assistent benennt Gültigkeitsregeln auf Feldebene, indem er das Präfix "vrf" (für "validation rule, field"; "Gültigkeitsregel, feldbezogen") mit den Tabellen- und Feldnamen kombiniert, z. B. vrf_customer_company
. Der Name einer Gültigkeitsregel auf Tabellenebene ergibt sich aus dem Präfix "vrt" (für "validation rule, table"; "Gültigkeitsregel, tabellenbezogen") und dem Namen der Tabelle, z. B. vrt_customer
.
Der SQL Server-Upsizing-Assistent verwendet zur Durchführung der Gültigkeitsprüfung auf Feldebene Trigger, die gespeicherte Prozeduren aufrufen, anstelle von SQL Server-Regeln, da diese eine programmgesteuerte Anzeige von Fehlermeldungen nicht zulassen. Weitere Informationen über SQL Server-Regeln finden Sie in der SQL Server-Dokumentation unter dem CREATE RULE-Befehl.
Referenzielle Integrität
Ihre Visual FoxPro-Anwendung unterstützt die referenzielle Integrität über Trigger für UPDATE-, DELETE- und INSERT-Ereignisse von persistenten Tabellenbeziehungen, die auf Datenbankebene gewährleistet werden. Es stehen Ihnen in SQL Server zwei Methoden zur Verfügung, um Bedingungen für referenzielle Integrität zu implementieren:
Triggerbasierte referenzielle Integrität
- Oder -
Deklarative referenzielle Integrität
Wenn Sie die triggerbasierte referenzielle Integrität verwenden, erstellt der SQL Server-Upsizing-Assistent Trigger, die den Transact-SQL-Code enthalten, der für die Duplizierung der Visual FoxPro-Bedingungen für referenzielle Integrität erforderlich ist. Wenn Sie die deklarative referenzielle Integrität implementieren, erstellt der SQL Server-Upsizing-Assistent unter Verwendung des ALTER TABLE-Befehls und des Schlüsselwortes CONSTRAINT SQL Server-Bedingungen.
Triggerbasierte referenzielle Integrität
Wenn Sie die triggerbasierte Methode einsetzen, wird die referenzielle Integrität in SQL Server durch Verwenden von Transact-SQL-Code in Triggern durchgesetzt. Sie können Trigger verwenden, um Einschränkungen in UPDATE-, DELETE- und INSERT-Anweisungen bereitzustellen und die mittels DELETE- und INSERT-Anweisungen durchgeführten Änderungen weiterzugeben.
Der SQL Server-Upsizing-Assistent erstellt SQL Server-Trigger, indem die Visual FoxPro-Trigger, mit denen die referenzielle Integrität für persistente Beziehungen in Ihrer Visual FoxPro-Datenbank durchgesetzt wird, ausgewertet werden. Die folgende Tabelle enthält die Umsetzung der Visual FoxPro-Bedingungen für referenzielle Integrität in SQL Server-Trigger, die vom SQL Server-Upsizing-Assistenten erzeugt werden.
Visual FoxPro-Bedingung
für referenzielle Integrität SQL Server-Trigger
UPDATE | Weitergeben | Cascade UPDATE-Trigger |
Untersagen | Restrict UPDATE-Trigger | |
Ignorieren | Es wird kein Trigger erzeugt | |
DELETE | Weitergeben | Cascade DELETE-Trigger |
Untersagen | Restrict DELETE-Trigger | |
Ignorieren | Es wird kein Trigger erzeugt | |
INSERT | Untersagen | Restrict INSERT-Trigger |
Ignorieren | Es wird kein Trigger erzeugt |
Eine persistente Visual FoxPro-Beziehung, die in einer Bedingung für referenzielle Integrität verwendet wird, kann in einer SQL Server-Datenquelle in bis zu vier Trigger umgesetzt werden: zwei für die Master-Tabelle und zwei für die Detailtabelle.
Anmerkung Wird nur eine der Tabellen einer Beziehung exportiert oder wird in Visual FoxPro nicht auf referenzielle Integrität hin geprüft, wird die jeweilige Beziehung nicht exportiert.
Master-Tabelle
Der SQL Server-Upsizing-Assistent erstellt einen UPDATE-Trigger, der abhängig vom Typ der in Visual FoxPro definierten Beziehung wie folgt arbeitet: Entweder hindert er den Benutzer daran, den Primärschlüssel der Master-Tabelle zu ändern, oder er nimmt die jeweilige Änderung auch an der Detailtabelle (verknüpfte Tabelle) vor.
Ebenfalls abhängig davon, von welchem Typ die Beziehung zwischen zwei Tabellen in Visual FoxPro ist, erstellt der Assistent einen DELETE-Trigger, der wie folgt arbeitet: Entweder verhindert er das Löschen eines Datensatzes, der mit Detaildatensätzen verknüpft ist, oder er löscht die Detaildatensätze.
Detailtabelle
Der SQL Server-Upsizing-Assistent erstellt einen UPDATE-Trigger, der verhindert, dass der Fremdschlüssel so geändert wird, dass der jeweilige Datensatz "verwaist". Ganz entsprechend wird ein INSERT-Trigger erstellt, der den Benutzer daran hindert, einen Datensatz hinzuzufügen, für den es in der Master-Tabelle kein passendes Gegenstück gibt.
Benutzerdefinierte Fehlerwerte
Wenn die referenzielle Integrität, die von den Triggern überwacht wird, die der SQL Server-Upsizing-Assistent erstellt hat, zur Laufzeit verletzt wird, schreibt der Assistent einen von ihm definierten Fehlerwert in die Variable @@ERROR. Mögliche Fehlerwerte werden vom Assistenten als Bestandteil des Triggercodes definiert. Welcher Fehlerwert zur Laufzeit zurückgegeben wird, hängt davon ab, welche Aktion gerade durchgeführt werden sollte: Aktualisieren (UPDATE), Einfügen (INSERT) oder Löschen (DELETE).
In der folgenden Tabelle sind die Fehlernummern für die einzelnen Aktionen aufgelistet:
Maßnahme | SQL Server-Fehler |
---|---|
Verletzte Gültigkeitsregel | 44444 |
Löschversuch | 44445 |
Aktualisierungsversuch | 44446 |
Einfügeversuch | 44447 |
Eine Aktualisierungs- oder Löschanweisung wirkte sich auf mehr als eine Zeile aus; die Anweisung wird automatisch zurückgesetzt. | 44448 |
Deklarative referenzielle Integrität
Wenn Sie die deklarative referenzielle Integrität implementieren, erstellt der SQL Server-Upsizing-Assistent unter Verwendung des ALTER TABLE-Befehls und des Schlüsselwortes CONSTRAINT SQL Server-Bedingungen. Die Bedingung für die Master-Tabelle verwendet das Schlüsselwort PRIMARY KEY. Die Bedingung für die Detailtabelle verwendet die Schlüsselwörter FOREIGN KEY und REFERENCES. Die deklarative referenzielle Integrität wird auf der RESTRICT-Ebene und der RESTRICT-Ebene für Aktualisierungen und Löschvorgänge unterstützt.
Sie können die SQL Server-Bedingungen verwenden, um Einschränkungen in UPDATE-, DELETE- und INSERT-Anweisungen zur Verfügung zu stellen.
Abbilden von Ausdrücken
Visual FoxPro und Transact-SQL verfügen zwar über einige gemeinsame Funktionen, aber viele Visual FoxPro-Funktionen werden nicht von SQL Server unterstützt. Der SQL Server-Upsizing-Assistent versucht mit Hilfe der folgenden Umsetzungstabelle für Ausdrücke, Visual FoxPro-Ausdrücke in Gültigkeitsregeln auf Feld- und Datensatzebene und Standardwerte in Transact-SQL zu konvertieren.
Visual FoxPro-Ausdruck | SQL Server-Ausdruck |
---|---|
Wahr (.T.) | 1 |
Falsch (.F.) | 0 |
# | <> |
.AND. | AND |
.NOT. | NOT |
.NULL. | NULL |
.OR. | OR |
=< | <= |
=> | >= |
ASC( ) | ASCII( ) |
AT( ) | CHARINDEX( ) |
CDOW( ) | DATENAME(dw, ...) |
CHR( ) | CHAR( ) |
CMONTH( ) | DATENAME(mm, ...) |
CTOD( ) | CONVERT(datetime, ...) |
CTOT( ) | CONVERT(datetime, ...) |
DATE( ) | GETDATE( ) |
DATETIME( ) | GETDATE( ) |
DAY( ) | DATEPART(dd, ...) |
DOW( ) | DATEPART(dw, ...) |
DTOC( ) | CONVERT(varchar, ...) |
DTOR( ) | RADIANS( ) |
DTOT( ) | CONVERT(datetime, ...) |
HOUR( ) | DATEPART(hh, ...) |
LIKE( ) | PATINDEX( ) |
MINUTE( ) | DATEPART(mi, ...) |
MONTH( ) | DATEPART(mm, ...) |
MTON( ) | CONVERT(money, ...) |
NTOM( ) | CONVERT(float, ...) |
RTOD( ) | DEGREES( ) |
SUBSTR( ) | SUBSTRING( ) |
TTOC( ) | CONVERT(char, ...) |
TTOD( ) | CONVERT(datetime, ...) |
YEAR( ) | DATEPART(yy, ...) |
Die folgenden Ausdrücke (Funktionen) sind in Visual FoxPro und SQL Server identisch.
Ausdrücke, die direkt aus Visual FoxPro auf SQL Server abgebildet werden
CEILING( ) | LOG( ) | LOWER( ) |
LTRIM( ) | RIGHT( ) | RTRIM( ) |
SOUNDEX( ) | SPACE( ) | STR( ) |
STUFF( ) | UPPER( ) |
Dateien, die vom SQL Server-Upsizing-Assistenten erstellt werden
Der SQL Server-Upsizing-Assistent erstellt, während er eine lokale in eine Client/Server-Datenbank überträgt, Tabellen für den eigenen Gebrauch. Diese Tabellen (Dateien) werden von der Festplatte gelöscht, sofern nicht eine der folgenden Bedingungen zutrifft:
- Sie veranlassen, dass ein Upsizing-Bericht (Bericht zur Erweiterung einer Client/Server-Datenbank) erstellt wird.
- Sie haben angegeben, dass der erzeugte SQL-Code gespeichert werden soll.
- Es treten Fehler während des Übertragens der lokalen in eine Client/Server-Datenbank auf, und Sie speichern die Fehlerinformationen.
Trifft eine dieser Bedingungen zu, erstellt der SQL Server-Upsizing-Assistent ein Projekt (namens Report, Report1, Report2 usw.) sowie eine Datenbank (namens Upsize, Upsize1 usw.) und legt die zugehörigen Dateien in einem Unterverzeichnis namens UPSIZE ab. UPSIZE ist ein Unterverzeichnis des Verzeichnisses, das per SET DEFAULT-Befehl für Ihre Visual FoxPro-Arbeitssitzung definiert ist. Der Assistent fügt der Datenbank die Tabellen hinzu, aus denen der Upsizing-Bericht erstellt wird, eine Tabelle, in der der erzeugte SQL-Code gespeichert wird, sowie die Fehlertabellen. In der folgenden Tabelle sind die Dateien aufgeführt, die gegebenenfalls während des Übertragens erstellt werden.
Lokale Tabellen, die während des Übertragens erstellt werden
Tabellenart | Tabellenname | Inhalt |
---|---|---|
Berichtstabellen | Errors_uw | Informationen über die Fehler, die während des Übertragens aufgetreten sind |
Fields_uw | Informationen über alle exportierten Tabellen | |
Indexes_uw | Informationen über alle exportierten Indizes | |
Misc_uw | Verschiedene Informationen zum Übertragungsvorgang | |
Relations_uw | Informationen über alle in der Visual FoxPro-Datenbank gespeicherten Bedingungen für referenzielle Integrität | |
Tables_uw | Informationen über die Tabellen der Datenbank, die exportiert werden sollen | |
Views_uw | Informationen über die lokalen Ansichten, die umgeleitet werden, um auf Remotedaten zuzugreifen. | |
Skripttabelle | SQL_uw | Ein Memofeld, das den gesamten SQL-Code enthält, der vom SQL Server-Upsizing-Assistenten erzeugt wurde. |
Tabellen für Datenexportfehler | ExportErrors_table_name | Der SQL Server-Upsizing-Assistent erzeugt für jede Tabelle, für die beim Exportieren ein Datenexportfehler auftritt, eine Tabelle mit den Datensätzen, die nicht erfolgreich exportiert wurden. |
Wird der Assistent während der Verarbeitung abgebrochen oder stoppt der Assistent infolge eines Fehlers, werden alle hier aufgeführten Tabellen von Ihrer Festplatte gelöscht.
Einsetzen von erstelltem SQL-Code
Die auf der Festplatte gespeicherte Skripttabelle enthält den gesamten SQL-Code, den der SQL Server-Upsizing-Assistent erzeugt hat, unabhängig davon, ob Fehler aufgetreten sind. Wenn Sie den erzeugten SQL-Code verwenden möchten, kopieren Sie die gewünschten Codeteile, und führen Sie sie aus. Wiederholen Sie diesen Vorgang so oft, bis Sie das gewünschte Ergebnis erreicht haben. Sie können jedoch nicht das gesamte SQL-Skript stellvertretend für den SQL Server-Upsizing-Assistenten ausführen, da der Assistent noch zusätzliche Schritte durchführt, die im erzeugten SQL-Code nicht berücksichtigt sind.
Siehe auch
Starten des SQL Server-Upsizing-Assistenten | Abschluss des SQL Server-Upsizing-Prozesses | Upsizing von Visual FoxPro-Datenbanken | Abbilden von Ausdrücken