| 

.NET C# Java Javascript Exception

1
Hallo!
Ich bin dabei ein größeres SQL Server DB Projekt in eine Visual Studio DB Solution zu überführen. Im Zuge der Generierung von Post Deployment Script für Lookup Tables / auszuliefernde Daten bin ich auf die Möglichkeiten des MERGE Statements gestossen, mit denen man sehr schön die Tabelleninhalte am Ziel sicherstellen kann, da es auch in einem Rutsch Löscht, Aktualisiert und natürlich einfügt wo etwas abweicht.
Nun sind das leider einige Tabellen, die da rein müssten. Alle Beispiele nutzen idR einen JOIN zwischen zwei DB's / Tabellen zur Überprüfung, ich möchte aber ja nun fixe Werte in das MERGE Statement einsetzen. Dafür finde ich leider keine Lösung, "mal eben" über 30 Tabellen zu rutschen und ein entsprechendes MERGE Statement INKLUSIVE der Daten, und zwar auch unter Berücksichtungung der Datentypen, zu erzeugen. Mag das wirklich nicht von Hand machen. Hat jemand Erfahrung damit oder eine gute Idee? Ich brauche das (hoffentlich) nur jetzt, einmalig für den Transfer von den Tabelleninhalten in Visual Studio Post-Deployment File(s)...

Hier Ein Beispiel dafür wie so ein Statement pro Tabelle aussehen sollte, natürlich jeweils mit den entsprechenden Tabellen/-Spaltennamen und Daten bestückt:
SET IDENTITY_INSERT [dbo].[T_Language] ON; 
MERGE [dbo].[T_Language] AS t
USING
(VALUES
(1, N'Deutsch', N'DE', 0),
(2, N'English', N'EN', 0),
(3, N'Espanol', N'ES', 0)
)
AS s (ID_LANGUAGE, LANGUAGE_NAME, COUNTRY_CODE, INACTIVE)
ON (t.[ID_LANGUAGE] = s.[ID_LANGUAGE])
WHEN MATCHED THEN
UPDATE SET
[LANGUAGE_NAME] = s.[LANGUAGE_NAME],
[COUNTRY_CODE] = s.[COUNTRY_CODE],
[INACTIVE] = s.[INACTIVE]
WHEN NOT MATCHED BY TARGET THEN
INSERT([ID_LANGUAGE], [LANGUAGE_NAME], [COUNTRY_CODE], [INACTIVE])
VALUES(s.[ID_LANGUAGE], s.[LANGUAGE_NAME], s.[COUNTRY_CODE], s.[INACTIVE])
WHEN NOT MATCHED BY SOURCE THEN DELETE;
SET IDENTITY_INSERT [dbo].[T_Language] OFF;
31.07.2012
Magier77 238 6
1 Antwort
0
Wer's braucht, das hier kommt der Antwort SEHR Nahe...

Including Static Data in DB Deployments

Leider landen Script und Daten in getrennten Ausgabefenstern, so dass man sich diese Teile jeweils noch zusammen friemeln muss - aber immerhin, es gibt massenhaft Parameter mit denen man verschiedene Ziele erfüllen kann. Im Endausbau scheint auch dieser gute Mensch ebenso wie ich daran gescheitert zu sein alles zu kombinieren - und mir läuft langsam auch die Zeit weg... von Hand wirds langsam effizienter :) Trotzdem: guter, hilfreicher Artikel zum Thema!
31.07.2012
Magier77 238 6

Stelle deine Sql-server-Frage jetzt!