BC SqlExec
SQL Exec
Der Tab-Reiter SQL Exec dient zur Ausführung von SQL-Statements, insbesondere zur Anlage von Tabellen, Indizes und Triggern.
Zunächst sind auf dieser Seite zwei große Textfelder zur Eingabe von SQL-Anweidungen. Mit dem Button Execute links davon wird das jeweilige Statement ausgeführt. Hat die Ausführung des Statements Auswirkungen auf die Zahl der Datensätze, dann wird das auf dem Label Result angezeigt. Mit dem Button GUID wird eine GUID eingefügt - das istzum Beispiel bei INSERT-Anweidungen häufig erforderlich.
In der Regel wird jedoch primär mit den Buttons auf der rechten Seite gearbeitet. Hier wird in das obere Textfeld ein CREATE TABLE-Statement geschrieben, mit den Buttons auf der rechten Seite wird daraus dann ein passendes SQL-Statement generiert und in das untere Textfeld geschrieben. Sofern die Option Expedite gewählt ist, wird das generierte Statement dann gleich ausgeführt.
- Create Table erzeugt ein Statement zum Anlegen einer Tabelle, nimmt dabei jedoch beim Eingangsstatement - das ja auch eine CREATE TABLE-Statement ist - Änderungen vor. So werden die Typen auf das jeweilige Datenbanksystem angepasst. Bei SQLite wird aus dem PRIMARY KEY ein UNIQUE gemacht, weil Primärschlüsselspalten mit durchlaufenden Nummern versehen werden, und bei BAF mit GUIDs gearbeitet wird.
- History Table erzeugt die Tabelle für die Vollhistorisierung
- History Index History-Tabellen haben keinen Primärschlüssel, von daher wird mit diesem Button für die ID-Spalte ein Index angelegt.
- Mit Trigger Insert und Triger Update werden hier (bei SQLite) jeweils ein Trigger für Insert- und Update-Statements angelegt. Bei anderen Datenbanksystemen wird ein gemeinsamer Trigger verwendet, oder (bei Postgres) die Kombination aus einem Trigger und einer Funktion.
- Mit Drop Table und Drop History werden die beiden Tabellen gelöscht. Bei einer Änderung des CREATE TABLE-Statements können damit fix die beiden alten Tabellen gelöscht werden, bevor sie neu angelegt werden.
- Mit Execute Script können SQL-Skripte ausgeführt werden. Dabei müssen (und dürfen) im Skript nur die CREATE TABLE-Statements stehen, die History-Tabellen, deren Indizes und die Trigger werden automatisch daraus abgeleitet.
Spaltennamen
Manche Begriffe, die man als Spaltenbezeichner verwenden könnte, sind bei manchen Datenbanksysteme geschützte Begriffe und können nicht verwendet werden. Sofern die Option Replace gewählt ist, wird diesen Namen automatisch ein c (wie Column) vorangestellt. Aus key wird dann ckey.
Die folgenden Spaltenbezeichner werden ersetzt:
- key
- value
- start
- sort
- text
- password