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