Gibt den Quellcode zur Erstellung aller Benutzer-Tabellen einer Datenbank (per default der Datenbank, in der diese Prozedur installiert ist) via „print“ an die Standardausgabe.
Alternativ kann man sich aber auch die Spaltendefinition einer einzigen Tabelle als Ergebnismenge ausgeben lassen (→ „GetOnlyColumnDefAsResult = 1“). In diesem Fall darf der Name der entsprechenden Tabelle (→ „OnlyTableName“) auch ein vollqualifizierter Namen sein, also in der Form <db>.<owner>.<table> („DatabaseName“ muß dann natürlich „NULL“ sein). Erlaubt sind aber auch nur die Datenbanken, die in „DatabaseName“ angegeben werden dürfen ! Auch ist es möglich, den Namen einer temporären, nur für die Dauer der Sitzung gültigen Tabelle (also „#…“) anzugeben (denn die gehört ja zur „tempdb“ und damit zu einer der erlaubten Datenbanken).
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | system administration |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
OnlyTableName | NULL | Name einer Tabelle. Falls angegeben, wird nur die DDL dieser Tabelle ausgegeben. Hinweis : Es wird IMMER der „LIKE“-Operator angewandt, so daß man die DLL aller Tabellen, deren Name einem bestimmtes „pattern“ entspricht, bekommen kann. | varchar(100) | 6.0.6 |
DatabaseName | NULL | Name einer Datenbank. Angeben, um an die DDL von Tabellen einer anderen Datenbank zu kommen. Es sind aber derzeit nur diese Werte erlaubt : * dstore * dstoreifin * dstoreifout * dstoretempdb * tempdb | varchar(50) | 6.0.6 |
GetOnlyColumnDefAsResult | 0 | Wird nur beachtet, wenn „OnlyTableName“ NICHT „NULL“ ist ! „1“ angeben, um die Spaltendefinition der Tabelle „OnlyTableName“ (es darf auch ein vollqualifizierte Name sein) als Ergebnis zu erhalten. | bit | 6.0.7 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
colid5) | Wird nicht ausgegeben, sondern nur zur Sortierung verwendet. Spalte aus „syscolumns“, die für Tabellen angibt, um die wievielte Spalte es sich handelt. | tinyint | 6.0.7 |
ColumnName | Name einer Spalte der Tabelle „OnlyTableName“ | varchar(50) | 6.0.7 |
DataType | Gibt den Daten-Typ der Spalte „ColumnName“ an („varchar“, „tinyint“, etc.) | varchar(20) | 6.0.7 |
Length | Wieviel Byte können Werte, die in der Spalte „ColumnName“ ausgegeben werden, maximal enthalten. Bei vielen Daten-Typen ist die Speicherbelegung immer so groß wie dieser Wert (bei numerischen Daten-Typen z.B.). | integer | 6.0.7 |
PrecisionValue | Gilt nur für einige numerische Daten-Typen (z.B. „decimal“) und gibt die maximale Anzahl Stellen an, die ein Wert, der in der Spalte „ColumnName“ steht, enthalten kann | tinyint | 6.0.7 |
Scale | Gilt nur für einige numerische Daten-Typen (z.B. „decimal“) und gibt die Genauigkeit, sprich die maximale Anzahl an Nachkomma-Stellen an, die ein Wert, der in der Spalte „ColumnName“steht, enthalten kann | tinyint | 6.0.7 |
(parameterunabängige Sortierung)
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 6) |
---|---|---|
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
7.0.6 | 2014-06-23 | Ab jetzt wird auch bzgl. Indizes die Sortierung berücksichtigt und daher evtl. „DESC“ [für absteigende Sortierung] mit ausgegeben |
7.0.3 | 2013-12-13 | 1. Unterstützung der „in row“-Option für „text“-Spalten 2. Datentyp-Erweiterung von „OnlyTableName“ wg. der neuen Möglichkeit, den vollqualifizierten Tabellennamen angeben zu können |
6.5.2 | 2013-02-26 | Ab jetzt wird auch die „with ignore_dup_key“-Option bei einem Index mit ausgegeben |
6.5.1 | 2012-11-02 | Datentyp der Rückgabespalte „Length“ war in der Doku falsch [nur im Fall „GetOnlyColumnDefAsResult = 1“] |
6.0.8 | 2012-06-29 | 1. Bessere Unterstützung des Datentyps „nvarchar“ bzw. „nchar“ („Länge“ wie z.B. bei „varchar“, also „varchar(100)“, fehlte bislang) 2. Interne Anpassung : Verwendung von „case when“ an Stelle von „isnull“-Verschachtelungen |
6.0.7 | 2012-05-08 | Neuer Parameter „GetOnlyColumnDefAsResult“ eingeführt. Damit hat man nun die Möglichkeit, die Spaltendefinition einer in „OnlyTableName“ angegebenen Tabelle als Ergebnismenge zu erhalten. |
6.0.6 | 2012-03-01 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetTableDDL_Ad'
Mit xmllint 7) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetTableDDL_Ad' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'mi_GetTableDDL_Ad', array( // 'OnlyTableName' => NULL, // 'DatabaseName' => NULL, // 'GetOnlyColumnDefAsResult' => 0 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="mi_GetTableDDL_Ad"> <Parameters> <!-- <Parameter Name="OnlyTableName">NULL</Parameter> --> <!-- <Parameter Name="DatabaseName">NULL</Parameter> --> <!-- <Parameter Name="GetOnlyColumnDefAsResult">0</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>