Мы используем SSDT для публикации изменений в экземпляре SQL Server 2005. Мы кодируем файл PostDeploy SQL, который обрабатывает обновление всех наших статических данных, и он работает очень хорошо... но только если я выполняю сценарий PostDeploy вручную. Если я позволю SSDT вытолкнуть его как фактическую операцию публикации/постдеплоя, он с треском провалится, потому что искажает все символы, отличные от ASCII.
Например
INSERT INTO ##RawData ([FieldID], [FormPageID], [Name], [IsVisible], [DataTypeID], [LookupID], [MaxLength], [DecimalPlaces], [RequiredTypeID], [QuestionLeader], [Text_En], [AdditionalText_En], [StatsVariable], [AdditionalStatsVariable1], [AdditionalStatsVariable2], [StatsDescription], [ApplicabilityLogic], [FieldValueLogic], [Text_Sp], [AdditionalText_Sp]) VALUES (N'92', N'7', N'OtherHeartDisease', N'1', N'2', N'921', N'1', NULL, N'1', N'D.17', N'Have you ever been told you have any other heart disease? ', N'What other heart disease? ', N'svohd', NULL, NULL, N'D17. Other heart disease', NULL, NULL, N'¿Le han dicho alguna vez si tiene alguna otra enfermedad cardiaca?', N'¿Qué otra enfermedad cardiaca?')
становится
INSERT INTO ##RawData ([FieldID], [FormPageID], [Name], [IsVisible], [DataTypeID], [LookupID], [MaxLength], [DecimalPlaces], [RequiredTypeID], [QuestionLeader], [Text_En], [AdditionalText_En], [StatsVariable], [AdditionalStatsVariable1], [AdditionalStatsVariable2], [StatsDescription], [ApplicabilityLogic], [FieldValueLogic], [Text_Sp], [AdditionalText_Sp]) VALUES (N'92', N'7', N'OtherHeartDisease', N'1', N'2', N'921', N'1', NULL, N'1', N'D.17', N'Have you ever been told you have any other heart disease? ', N'What other heart disease? ', N'svohd', NULL, NULL, N'D17. Other heart disease', NULL, NULL, N'�Le han dicho alguna vez si tiene alguna otra enfermedad cardiaca?', N'�Qu� otra enfermedad cardiaca?')
И это то, что на самом деле появляется в базе данных - ¿Qué становится 'Qu' или ?Qu? или что-то подобное. Является ли это полным ограничением инструмента SSDT или есть какая-то непонятная конфигурация или обходной путь, о котором я не знаю? Я пытаюсь сократить количество ручных сценариев в процессе развертывания до минимума, чтобы избавить разработчиков от головной боли, поэтому избавление от «опубликовать, а затем выполнить сценарий данных» было бы большим подспорьем.
База данных настроена с сопоставлением sql_latin1_general_cp1_ci_as, но это столбцы NVARCHAR, поэтому это не имеет значения.