usersettings hinzugefügt und stammdaten verworfen, wird mit javascript erstellt
178 lines
6.8 KiB
Transact-SQL
178 lines
6.8 KiB
Transact-SQL
-- Wechsel zur Datenbank 'engomo'
|
|
USE engomo;
|
|
|
|
-- Deklariere eine Variable für das Tabellenpräfix
|
|
DECLARE @TablePrefix NVARCHAR(128) = 'begehung_';
|
|
|
|
-- Deklariere eine Tabellenvariable mit den Endungen der Tabellennamen
|
|
DECLARE @TableSuffixes TABLE (
|
|
Suffix NVARCHAR(128)
|
|
);
|
|
|
|
-- Füge die gewünschten Tabellennamen-Endungen hinzu
|
|
INSERT INTO @TableSuffixes (Suffix) VALUES
|
|
('extras'),
|
|
('raeume'),
|
|
('badewanne'),
|
|
('toilette'),
|
|
('dusche'),
|
|
('waschbecken'),
|
|
('allgemein'),
|
|
('usersettings');
|
|
|
|
-- Deklariere eine Tabellenvariable mit den Spalteninformationen
|
|
DECLARE @ColumnsToAdd TABLE (
|
|
TableName NVARCHAR(128),
|
|
ColumnName NVARCHAR(128)
|
|
);
|
|
|
|
-- Füge die gewünschten Spalten hinzu, einschließlich begehung_stammdaten ohne engomoid
|
|
INSERT INTO @ColumnsToAdd (TableName, ColumnName) VALUES
|
|
-- begehung_extras
|
|
(@TablePrefix + 'extras', 'engomoid'),
|
|
(@TablePrefix + 'extras', 'raum_bezeichnung'),
|
|
(@TablePrefix + 'extras', 'handtuchheizkoerper'),
|
|
(@TablePrefix + 'extras', 'badetuchhalter'),
|
|
(@TablePrefix + 'extras', 'waschmaschinenanschluss'),
|
|
(@TablePrefix + 'extras', 'notizen'),
|
|
|
|
-- begehung_raeume
|
|
(@TablePrefix + 'raeume', 'engomoid'),
|
|
(@TablePrefix + 'raeume', 'raumid'),
|
|
(@TablePrefix + 'raeume', 'raum_bezeichnung'),
|
|
(@TablePrefix + 'raeume', 'tapezieren'),
|
|
(@TablePrefix + 'raeume', 'anstrich_tuerblatt'),
|
|
(@TablePrefix + 'raeume', 'anstrich_tuerrahmen'),
|
|
(@TablePrefix + 'raeume', 'anstrich_tuerblatt_notizen'),
|
|
(@TablePrefix + 'raeume', 'anstrich_heizkoerper'),
|
|
(@TablePrefix + 'raeume', 'anstrich_heizkoerper_notizen'),
|
|
(@TablePrefix + 'raeume', 'anstrich_decke'),
|
|
(@TablePrefix + 'raeume', 'anstrich_decke_notizen'),
|
|
(@TablePrefix + 'raeume', 'anstrich_waende'),
|
|
(@TablePrefix + 'raeume', 'anstrich_waende_notizen'),
|
|
(@TablePrefix + 'raeume', 'anstrich_fenster'),
|
|
(@TablePrefix + 'raeume', 'anstrich_fenster_notizen'),
|
|
(@TablePrefix + 'raeume', 'anstrich_fenstersims'),
|
|
(@TablePrefix + 'raeume', 'anstrich_fenstersims_notizen'),
|
|
(@TablePrefix + 'raeume', 'material_fenster'),
|
|
(@TablePrefix + 'raeume', 'material_fenstersims'),
|
|
(@TablePrefix + 'raeume', 'material_bodenbelag'),
|
|
(@TablePrefix + 'raeume', 'sonstiges_einbauschrank'),
|
|
(@TablePrefix + 'raeume', 'sonstiges_einbauschrank_notizen'),
|
|
(@TablePrefix + 'raeume', 'sonstiges_luefter'),
|
|
(@TablePrefix + 'raeume', 'sonstiges_luefter_notizen'),
|
|
(@TablePrefix + 'raeume', 'notizen_verursachung_mieter'),
|
|
(@TablePrefix + 'raeume', 'notizen_instandsetzung_mieter'),
|
|
(@TablePrefix + 'raeume', 'notizen_instandsetzung_vermieter'),
|
|
|
|
-- begehung_badewanne
|
|
(@TablePrefix + 'badewanne', 'engomoid'),
|
|
(@TablePrefix + 'badewanne', 'raum_bezeichnung'),
|
|
(@TablePrefix + 'badewanne', 'ablauf_mit_stoepsel'),
|
|
(@TablePrefix + 'badewanne', 'excenter_garnitur'),
|
|
(@TablePrefix + 'badewanne', 'griff'),
|
|
(@TablePrefix + 'badewanne', 'handbrause_mit_schlauch'),
|
|
|
|
-- begehung_dusche
|
|
(@TablePrefix + 'dusche', 'engomoid'),
|
|
(@TablePrefix + 'dusche', 'raum_bezeichnung'),
|
|
(@TablePrefix + 'dusche', 'ablagekorb'),
|
|
(@TablePrefix + 'dusche', 'duschabtrennung'),
|
|
(@TablePrefix + 'dusche', 'duschkabine'),
|
|
(@TablePrefix + 'dusche', 'duschstange'),
|
|
(@TablePrefix + 'dusche', 'duschstange_mit_seifenschale'),
|
|
(@TablePrefix + 'dusche', 'dusche_bodengleich'),
|
|
(@TablePrefix + 'dusche', 'duschtasse'),
|
|
(@TablePrefix + 'dusche', 'handbrause_mit_schlauch'),
|
|
|
|
-- begehung_waschbecken
|
|
(@TablePrefix + 'waschbecken', 'engomoid'),
|
|
(@TablePrefix + 'waschbecken', 'raum_bezeichnung'),
|
|
(@TablePrefix + 'waschbecken', 'ablauf_mit_stoepsel'),
|
|
(@TablePrefix + 'waschbecken', 'doppelhandtuchhalter'),
|
|
(@TablePrefix + 'waschbecken', 'doppelwaschbecken'),
|
|
(@TablePrefix + 'waschbecken', 'doppelwaschtisch'),
|
|
(@TablePrefix + 'waschbecken', 'excenter_garnitur'),
|
|
(@TablePrefix + 'waschbecken', 'handtuchhalter'),
|
|
(@TablePrefix + 'waschbecken', 'handtuchhaken'),
|
|
(@TablePrefix + 'waschbecken', 'konsole'),
|
|
(@TablePrefix + 'waschbecken', 'seifenschale'),
|
|
(@TablePrefix + 'waschbecken', 'spiegelleuchte'),
|
|
(@TablePrefix + 'waschbecken', 'waschbecken'),
|
|
|
|
-- begehung_toilette
|
|
(@TablePrefix + 'toilette', 'engomoid'),
|
|
(@TablePrefix + 'toilette', 'raum_bezeichnung'),
|
|
(@TablePrefix + 'toilette', 'sitz_mit_deckel'),
|
|
(@TablePrefix + 'toilette', 'sitz_mit_deckel_softclose'),
|
|
(@TablePrefix + 'toilette', 'toilettenpapierhalter'),
|
|
|
|
-- begehung_usersettings
|
|
(@TablePrefix + 'usersettings', 'user_mail'),
|
|
(@TablePrefix + 'usersettings', 'user_theme');
|
|
|
|
-- Deklariere Variablen für die Spalten-Schleife
|
|
DECLARE @TargetTable NVARCHAR(128);
|
|
DECLARE @CurrentColumn NVARCHAR(128);
|
|
DECLARE @AddColumnSQL NVARCHAR(MAX);
|
|
|
|
-- Deklariere und öffne einen Cursor, um durch die Spalten zu iterieren
|
|
DECLARE column_cursor CURSOR FOR
|
|
SELECT TableName, ColumnName FROM @ColumnsToAdd;
|
|
|
|
OPEN column_cursor;
|
|
|
|
FETCH NEXT FROM column_cursor INTO @TargetTable, @CurrentColumn;
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
BEGIN TRY
|
|
-- Überprüfe, ob die Tabelle existiert, andernfalls erstelle die Tabelle
|
|
IF NOT EXISTS (
|
|
SELECT *
|
|
FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_NAME = @TargetTable
|
|
AND TABLE_SCHEMA = 'dbo'
|
|
)
|
|
BEGIN
|
|
-- Erstelle die Tabelle, wenn sie nicht existiert
|
|
DECLARE @CreateTableSQL NVARCHAR(MAX);
|
|
SET @CreateTableSQL = N'CREATE TABLE dbo.[' + @TargetTable + N'] (' + @CurrentColumn + N' NVARCHAR(255));';
|
|
EXEC sp_executesql @CreateTableSQL;
|
|
PRINT 'Tabelle ' + @TargetTable + ' wurde erstellt.';
|
|
END
|
|
|
|
-- Überprüfe, ob die Spalte bereits existiert
|
|
IF NOT EXISTS (
|
|
SELECT *
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_NAME = @TargetTable
|
|
AND COLUMN_NAME = @CurrentColumn
|
|
AND TABLE_SCHEMA = 'dbo'
|
|
)
|
|
BEGIN
|
|
-- Definiere das ALTER TABLE Statement zum Hinzufügen der Spalte mit NVARCHAR(255) Typ
|
|
SET @AddColumnSQL = N'ALTER TABLE dbo.[' + @TargetTable + N'] ADD [' + @CurrentColumn + N'] NVARCHAR(255);';
|
|
|
|
-- Führe das dynamische SQL aus
|
|
EXEC sp_executesql @AddColumnSQL;
|
|
|
|
PRINT 'Spalte ' + @CurrentColumn + ' wurde zu ' + @TargetTable + ' hinzugefügt.';
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
PRINT 'Spalte ' + @CurrentColumn + ' existiert bereits in ' + @TargetTable + '.';
|
|
END
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'Fehler beim Hinzufügen der Spalte ' + @CurrentColumn + ' zu ' + @TargetTable + ': ' + ERROR_MESSAGE();
|
|
END CATCH
|
|
|
|
-- Hole die nächste Spalte
|
|
FETCH NEXT FROM column_cursor INTO @TargetTable, @CurrentColumn;
|
|
END
|
|
|
|
-- Schließe und deallokiere den Spalten-Cursor
|
|
CLOSE column_cursor;
|
|
DEALLOCATE column_cursor;
|