Jump to content

Datenbankname in mehrern views ändern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo

In einem Schritt die Definitionen zu ändern wird schwierig.

Aber du kannst sie mittels Cursor auslesen, die View droppen und neu erstellen

 

select *, REPLACE(view_definition, 'peter_lustig', 'peter_traurig') from INFORMATION_SCHEMA.VIEWS where view_definition like '%peter_lustig%'

 

Mittels des Namens kannst du die alte View löschen und dann neu anlegen. Die Definition kannst du dann wieder mit sp_sqlexec ausführen und damit die View neu anlegen.

Ich denke das sollte gehen.

Gruß MDD

bearbeitet von MDD
% am Schluss beim Where-Kriterium angefügt
Link zu diesem Kommentar

Mir ist gerade aufgefallen dass ich am Schluss das % vergessen habe.

 

Mit "Aber leider funktioniert das nicht" ist es ein wenig schwierig weiter zu kommen.

Was funktioniert nicht?

Funktioniert das Statement nicht oder weißt du nicht wie du es umsetzen musst?

 

Versuch noch mal das mal das Statement und pass die Datenbanknamen entsprechend an. 

 

select *, REPLACE(view_definition, 'peter_lustig', 'peter_traurig') AS Neues_Create from INFORMATION_SCHEMA.VIEWS where view_definition like '%peter_lustig%'

 

Schau ob in der letzten Spalte "Neues_Create" die View so richtig definiert wäre. 

Gruß MDD

Link zu diesem Kommentar
vor einer Stunde schrieb RAST:

Allerdings findert er nur eine View und nicht zwei Views die in der Testdatenbank sind.

Dann steht bei der zweiten View das peter_lustig nicht drinnen.

 

 

Ein Update würde dir vermutlich auch nicht viel bringen, selbst wenn es ginge. Immerhin ist das nur die Definition und nicht die View selbst.

Was du machen kannst ist vor noch eine Spalte zusammenstellen und dort vor jede View ein Drop dazuschreiben.

select TABLE_name, REPLACE(view_definition, 'peter_lustig', 'peter_traurig') AS Neues_Create,
'DROP VIEW IF EXISTS ' + TABLE_NAME as Drops, *
from INFORMATION_SCHEMA.VIEWS
where view_definition like '%peter_lustig%'

Dann kopierst den Inhalt der Spalten "Drops" ins Abfrage-Fenster und gleich dahinter das die Create Abfrage aus der Spalte "Neues_create" und führst es Miteinander aus. Womöglich braucht es zwischen den Drops und den Creates ein "GO" damit zuerst die Alten Views weg sind und dann die neuen erstellt werden können.

 

Würde dann in etwa so ausschauen

DROP VIEW IF EXISTS view1
DROP VIEW IF EXISTS view2
DROP VIEW IF EXISTS ...
go
Create view view1 as Select ... from Peter_traurig.dbo.tabelle1 ....
Create view view2 as Select ... from Peter_traurig.dbo.tabelle4711 ....
Create view ....

 

 

Link zu diesem Kommentar
  • 4 Wochen später...
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...