15.12.2017

SSDT Publish Skript: Korrekte Darstellung von Sonderzeichen

Technical Value

SSDT Publish Skript zeigt Ersetzungs- statt Sonderzeichen

Im Kontext des Projektes wollten wir eine Tabelle über ein Pre-Deployment-Skript manuell mit neuen Inhalten füllen. Zu diesem Zweck haben wir zunächst mit dem SQL Server Management Studio (SSMS) ein Insert-SQL-Skript entwickelt und dem betreffenden Release-Ordner hinzugefügt. Als wir dieses Skript über das Kontextmenü im Visual Studio öffneten, sah soweit alles korrekt aus:

SSDT Publish Skript
Daraufhin haben wir das SSDT Publish Skript erzeugt, um das Modell auf einer Datenbank bereitzustellen. Dabei sind plötzlich alle Sonderzeichen verlorengegangen. Stattdessen wird das Ersetzungszeichen angezeigt:

SSDT Publish Skript

Das gleiche Bild zeigte sich bei einem SELECT auf die Tabelle. Im Rahmen unserer Fehlersuche konnten wir dieses Phänomen auf den verwendeten Zeichensatz zurückführen: SSMS speichert die entsprechenden Dateien im ANSI-Format ab. Das Visual Studio nutzt indes UTF-8 – so auch bei der Generierung des SSDT Publish Skriptes.

Problemlösung: einheitliche Zeichensätze verwenden

Es bieten sich nun zwei Möglichkeiten, um das Problem zu umgehen:

  1. Die Skripte werden im Visual Studio entwickelt. In der Standardeinstellung lassen sich die SQL-Dateien dann direkt als UTF-8-Format abspeichern.
  2. Die Entwicklung der Skripte erfolgt in SSMS. Allerdings muss unter „File > Advanced Save Options“ der Zeichensatz von ANSI auf „Unicode (UTF-8 with signature) – Codepage 65001“ geändert werden.

Als Nachweis noch ein konkretes Beispiel. Es werden drei Skripte im SSDT abgelegt:

  • im SSMS entwickelt und normal abgespeichert
  • im SSMS entwickelt und in UTF-8 abgespeichert
  • im Visual Studio (SSDT) entwickelt und normal abgespeichert

Daraufhin sieht das generierten SSDT Publish Skript wie folgt aus:

SSDT Publish Skript

Neuen Kommentar schreiben

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.

Klartext

  • Keine HTML-Tags erlaubt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Web page addresses and email addresses turn into links automatically.
Teilen auf

Newsletter Anmeldung

Abonnieren Sie unseren Newsletter!
Lassen Sie sich regelmäßig über alle Neuigkeiten rundum ORAYLIS und die BI- & Big-Data-Branche informieren.

Jetzt anmelden

Unsere Website benutzt Cookies, um bestmögliche Funktionalitäten bieten zu können. Durch die Nutzung unserer Website, erklären Sie sich mit der Verwendung von Cookies einverstanden. In unserer Datenschutzerklärung finden Sie unter §5 Informationen und Links, wie Sie diesen Maßnahmen jederzeit widersprechen können.