maximailer
Neuer Benutzer
- Beiträge
- 2
Hallo,
ich bin neu in diesem Forum und hoffe ihr könnt mir bei einer blöden Situation helfen.
Basis ist, dass ich Projektdatenbanken habe die schon upgedated sind und eine neue Spalte ('BG_USER_TEMPLATE_01) in einer Tabelle haben und einige die es noch nicht sind.
Mit der Situation muss ich derzeit leben.
Damit alle User ein wichtiges SQL aufrufen können muss ich derzeit zwei SQL´s zur Verfügung stellen.
Jetzt war meien Idee ob ich das SQL so schreiben kann, dass es immer funktioniert.
Der erste Ansatz war
Select
CASE
When
0=(Select Count(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME='BUG' AND COLUMN_NAME='BG_USER_TEMPLATE_01')
Then 'N.A.'
Else 'Vorhanden'
END
From BUG
-->Zumindest sehe ich ob die Spalte da ist oder nicht
Jetzt dachte ich, dass ich auch im Fall des Vorhandenseins der Spalte diese Ausgeben kann
Select
CASE
When
0=(Select Count(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME='BUG' AND COLUMN_NAME='BG_USER_TEMPLATE_01')
Then 'N.A.'
Else BUG.BG_USER_TEMPLATE_01
END
From BUG
--> Das führ aber leider zu
Msg 207, Level 16, State 1, Line 8
Invalid column name 'BG_USER_TEMPLATE_01'.
Jetzt meine ev blöde Frage
Gibt es irgend einen kranken Trick mit dem ich das SQL doch so schreiben kann, dass es immer funtktioniert (unabhängig ob die Tabelle die Spalte hat oder nicht)?
Danke in jedem Fall für eure Hilfe
ich bin neu in diesem Forum und hoffe ihr könnt mir bei einer blöden Situation helfen.
Basis ist, dass ich Projektdatenbanken habe die schon upgedated sind und eine neue Spalte ('BG_USER_TEMPLATE_01) in einer Tabelle haben und einige die es noch nicht sind.
Mit der Situation muss ich derzeit leben.
Damit alle User ein wichtiges SQL aufrufen können muss ich derzeit zwei SQL´s zur Verfügung stellen.
Jetzt war meien Idee ob ich das SQL so schreiben kann, dass es immer funktioniert.
Der erste Ansatz war
Select
CASE
When
0=(Select Count(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME='BUG' AND COLUMN_NAME='BG_USER_TEMPLATE_01')
Then 'N.A.'
Else 'Vorhanden'
END
From BUG
-->Zumindest sehe ich ob die Spalte da ist oder nicht
Jetzt dachte ich, dass ich auch im Fall des Vorhandenseins der Spalte diese Ausgeben kann
Select
CASE
When
0=(Select Count(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME='BUG' AND COLUMN_NAME='BG_USER_TEMPLATE_01')
Then 'N.A.'
Else BUG.BG_USER_TEMPLATE_01
END
From BUG
--> Das führ aber leider zu
Msg 207, Level 16, State 1, Line 8
Invalid column name 'BG_USER_TEMPLATE_01'.
Jetzt meine ev blöde Frage
Gibt es irgend einen kranken Trick mit dem ich das SQL doch so schreiben kann, dass es immer funtktioniert (unabhängig ob die Tabelle die Spalte hat oder nicht)?
Danke in jedem Fall für eure Hilfe