Наиболее часто используемое решение для больших, я имею в виду крупных приложений, состоит в том, чтобы иметь таблицу языков с уникальным идентификатором, а затем ссылаться на LanguageId в ваших таблицах данных.при развертывании на другом языке все, что вам нужно, это вставить этот новый язык в таблицу поддерживаемых языков и вставить текстовые строки на этот язык со ссылкой на правильный LanguageId, настроить приложение для получения этого LanguageId при выполнении запросов к базе данных, и вы настроены!Ваше приложение легко мультиязычно!
Вы даже можете написать сами параметризованные скалярные функции, которые будут выполнять правильный запрос для вас, поэтому вместо:
select LabelText
from LabelTexts
where LanguageId = 1
and FormName LIKE N'frmMain'
and LabelName LIKE N'label1'
Вам потребуется только создатьи вызовите его так:
select dbo.GetLabelText(N'frmMain', N'label1', 1)
И тело функции закодировано так же, как в вышеупомянутом операторе SELECT.Не забудьте создать индексы для соответствующих полей для повышения производительности ваших запросов.