Можно ли это сделать? Или все пользовательские функции CLR в SQL Server используются только в SQL Server?
Да. Сборки UDT и все зависимые сборки должны быть уже на клиенте, доступны как в папке приложения, так и в GAC. Ваш проект должен ссылаться на байты сборки UDT или загружать UDT во время выполнения до обращения к столбцу типа UDT. Эта ссылка MSDN объясняет все требования, которым должен соответствовать ваш UDT, прежде чем ADO.Net сможет их создать в вашем клиенте . Надо сказать, что ваш код UDT не должен предполагать, что он выполняется во время выполнения SQL CLR, т.е. не должен пытаться открыть контекстное соединение или что-то специфичное для SQL.