Для MS SQL - при создании нового инстанса можно выбрать case sensitive. По умолчанию предлагает нечувствительность к регистру.
Для Axapta'ы - чувствительность к регистру для запросов б/д регулируется параметром CASESENSITIVE, хранящимся в таблице SQLSystemVariables. Для Oracle он включен, для MS SQL выключен (эти параметры устанвливаются при создании б/д и прописаны в классе SqlDatabaseInit).
Если включить этот параметр для MS SQL, то в запросы будет добавляться функция "{fn LCASE(%1)}". Причем, сами запросы строятся несколько "небрежно". Вот, например, запрос по пользователям
X++:
SELECT A.ID,A.DEL_CHECKGENERAL,A.DEL_CHECKAOS,A.DEL_CHECKLABELUSE,
A.DEL_CHECKAOTPATHUNIQUE,A.DOCUHANDLINGACTIVE,A.DEL_CHECKDATE,
A.DEL_CHECKFEATUREKEY,A.DEL_CHECKLABELANDHELP,
A.DOCUTOOLBARBUTTONACTIVE,A.HELPMARKEMPTYLINKS,
A.DEL_CHECKSPECIFIC,A.HELPTHEME,A.GENERATEEXECUTIONPLAN,
A.EMAIL,A.COMPILERTARGET,A.LANGUAGE,A.RECID
FROM SYSUSERINFO A(INDEX(I_956USERIDX) NOLOCK)
WHERE (ID={fn LCASE(?)})
ORDER BY A.ID OPTION
А вот так строятся View
X++:
CREATE VIEW CUSTVIEW AS
SELECT A.ACCOUNTNUM AS ACCOUNTNUM,A.NAME AS NAME,
A.DATAAREAID AS DATAAREAID,A.RECID AS RECID,
B.DATAAREAID AS DATAAREAID#2,B.CUSTGROUP AS CUSTGROUP,
B.NAME AS CUSTGROUPNAME
FROM CUSTTABLE A,CUSTGROUP B
WHERE ({fn LCASE(A.CUSTGROUP)}=B.CUSTGROUP)
Так что, если для MS SQL включить зависимость от регистра, то все строковые данные надо будет заносить исключительно в нижнем регистре (с включенным параметром CASESENSITIVE), т.е повторится ситуация с Oracle
PS Версия Axapta'ы указана в подписи