Если код выполняемый в SQL management studio дает ожидаемый результат, то выполнив его через C# (Framework 3.5)
получается как на скриншоте, такая же проблема и в построителе запросов,
т.е. те данные которые уже были в БД, в нормальной кодировке а те надписи на русском языке добавленные из программы на c# запросами вида
select (select max(T_checktime.ch_t) from changes.dbo.T_checktime) ch_t,m_id,'Добавлено' ch_type,'USB-устройство' hw_type,
'ID: '+cast(udv_instance as varchar)+ CASE WHEN udv_vendor is not null then ' | Бренд: ' else '' end+ISNULL(udv_vendor,'')+
' | Наименование: '+udv_name+'Hardware ID: '+udv_hwid ch_value from snapshot.dbo.H_usbdev_upd
отображаются как знаки вопроса