Я пытаюсь создать беззнаковый короткий тип данных в SQL Server, но пока все, что мне удалось, - это заставить его не допускать отрицательных значений, что приводит к напрасной трате половины моего пространства хранения. Должен быть какой-то способ создать собственный тип данных, в котором я сам управляю им. Я хотел бы иметь возможность сообщить системе, что тип данных имеет два байта, и прочитать значение определенным образом, чтобы оно считывало его в виде короткой строки. Есть идеи?
Окончательное решение:
Хорошо, ответ Натана, приведенный ниже, помог мне найти работоспособное решение. Поэтому, когда я сохраняю свое беззнаковое короткое значение в базе данных, мне просто нужно преобразовать его в подписанное короткое. Первая половина значений будет правильной. Если значение отрицательное, мне просто нужно добавить 65536 к числу. Окончательный вариант выбора выглядит так:
SELECT case when i >= 0 then i else 65536+i end
FROM MyDatabase.dbo.testDB
Это будет правильно отображать мой неправильно брошенный неподписанный шорт. Спасибо за помощь.