TSQL: Как преобразовываются значения при изменении числового столбца на сервере sql? - PullRequest
1 голос
/ 14 января 2011

Это на SQL Server 2008.

У меня есть несколько столбцов, которые я хочу преобразовать из money и decimal в varchar, например столбец с именем item_amount.

  • Как будут конвертированы эти значения?

    Будет ли оно совпадать с convert(varchar, item_amount)?Выполнение запроса, подобного select item_amount, convert(varchar, item_amount) from <table>, визуализирует столбцы одинаково, чего я и ожидал бы.

  • Я должен быть в безопасности от возможного усечения, верно?

    Предполагается, чтов столбце varchar достаточно символов (а это будет 39, поскольку максимальная точность для десятичного столбца составляет 38 + 1 символ для десятичной точки).Ни одно из числовых значений даже близко к 38 цифрам, большинство в диапазоне 3-5.

  • Я успешно выполнил эту команду в тестовой таблице и хочу убедиться, что я 'я не пропускаю и не забываю что-то, что может меня обидеть: alter table <mytable> alter column item_amount varchar(39) default '0' (это после удаления существующего ограничения по умолчанию ((0))).

1 Ответ

2 голосов
/ 14 января 2011

Относительно того, как выполняется преобразование, да, вы правы, если в столбце VARCHAR, в который вы его помещаете, указано правильное количество символов, которое вам нужно будет ввести.

Что касаетсяесли вы измените сумму на varchar, у вас все будет в порядке, так как она сделает конвертацию.

Я просто должен заметить, что делать это не очень хорошая идея, поскольку вы больше не взаимодействуете с числами для сортировки, фильтрации и т. Д., А просто с заметкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...