Wir verwenden ERWin für die Datenmodellierung und es generiert eine große SQL-DDL-Dateien für alle Datenbankobjekte, wie Tabellen und Ansichten. Ich denke daran, diese große Datei in kleine zu zerlegen, die zum Beispiel jeweils eine Tabelle, eine Ansicht enthalten.Windows Powershell: kann ich eine große SQL-Datei in kleine Dateien mit einem DB-Objekt teilen
Ziel ist es, die manuelle Arbeit bei der Bereitstellung von SQL DDLs mit Kopieren/Einfügen jeder Tabelle in ein Ausführungsfenster zu reduzieren, da in der Entwicklung in der Regel nur ein paar Tabellen geändert werden.
Ich sehe, dass jedes SQL mit einem Semikolon endet, ";" Ich hoffe, dass es in PowerShell einen Weg gibt, dieses Trennzeichen zu finden und die große SQL-Datei in viele kleine zu trennen.
Vielen Dank für Ihre Hilfe!
Hier ist ein Beispiel SQL-Code mit zwei Tabellen.
CREATE SET TABLE TABLE_1,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
NO FALLBACK,
CHECKSUM = DEFAULT
(
CAT_ID INTEGER NOT NULL ,
CAT_SECTION_ID INTEGER NOT NULL ,
CREATE_DTTM TIMESTAMP(6) NOT NULL ,
UPDATE_DTTM TIMESTAMP(6) NULL
)
UNIQUE PRIMARY INDEX UPI_CAT_SECTION
(
CAT_ID,
CAT_SECTION_ID
);
CREATE SET TABLE TABLE_2,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
NO FALLBACK,
CHECKSUM = DEFAULT
(
CH_NUM VARCHAR(8) NOT NULL ,
CH_YEAR SMALLINT NOT NULL ,
CREATE_DTTM TIMESTAMP(6) NOT NULL ,
LAST_UPDATE_DTTM TIMESTAMP(6) NULL
)
UNIQUE PRIMARY INDEX UPI_TABLE_2
(
CH_NUM,
CH_YEAR,
);
„, weil in der Entwicklung, in der Regel nur ein paar Tabellen werden geändert "Ich schlage vor, dass Sie ein Werkzeug verwenden, das 'differentielle' Skripte erstellen kann, wie das in Visual Studio enthaltene (Schemavergleich). Dann erzeugt es nur das Skript, das Sie zum Synchronisieren von Datenbanken benötigen und Sie brauchen nicht alle Diese manuelle Arbeit, um die Dinge auszurichten. Sie müssen vielleicht Ihren gesamten Deployment/Build-Prozess etwas detaillierter erklären. –
Dies kann mit Powershell erreicht werden, aber ich kann keine Beispiele mit out Sam geben ple Daten. Sie sollten einfach $ Query.Split (";") verwenden können – Nick