Subscribe Twitter

BestPractice - не используйте * в представлениях (view)!


Не первый раз с таким сталкиваемся и будем сталкиваться вновь, пока не отменят SQL :) Дело в том, что использование * во вьюшке зачастую приводит к проблемам, причем довольно забавным. Например, если изменить порядок полей таблицы на которой основана вьюшка, то при запросе
select * from myview
вы рискуете в поле A получить значения из поля B и наоборот :) То же происходит при добавлении новых полей - вы их просто не увидите. А если удалите поле - тут уж вьюшка просто сломается. Это связано с тем, что метаданные вьюшки (наименования столбцов) не обновляются сами по-себе, а столбцы в запрос берутся не по имени, а по-порядку

Решение1:
Самым верным решением является отказ от использования *

Решение2:
Регулярно использовать sp_refreshview, но это костыли

SSAS дает нам прикурить - ошибка уникальности атрибута в измерении


Столкнулись недавно с недокументированной особенностью SSAS. Создаем измерение, добавляем новый (не ключевой) атрибут типа int без указания поля для имени. Поле на котором основан атрибут иногда принимает значения NULL. При этом процессинг измерения валится с ошибкой уникальности ключа, хотя её и в помине не должно быть. Blank or Zero в настройке атрибута не помогает. Оказывается, SSAS просто очень не любит NULL.

Решение1: 
Избавляемся от NULL в атрибуте - заменяем на 0 (например) в исходной таблице

Решение2: 
Меняем тип ключа атрибута на WChar и вуаля, все процессится!

Решение3:
Добавляем в качестве имени атрибута его ключ. Странно, но это срабатывает...

Что делать, когда не отображается Object Explorer в SSMS?


Всякое бывает и даже такое. После прикрепления окна Object Explorer оно просто исчезло. Напрочь! Не помогают не F8, ни View->Object Explorer. Я даже напугаться успел, так как дел было много и все они срочные, а я не вижу дерева серверов.

Решение:
Window->Reset Window Layout